达梦数据库字段类型 varchar 转 text

达梦数据库字段类型 varchar 转 text

  • 业务场景
  • 问题浮现
  • 问题处理
    • 方式一
  • 总结

业务场景

在初次创建达梦数据库表的时候,仅仅设定了基础的表字段。然而,在预估字段值的长度时,常常会出现不够准确的情况。例如,我创建了一张参数配置表,当初针对参数配置值的长度预估为varchar(500)。这时就会遇到一种情况,有一个参数需要存放较长的中文内容来作为机构名称信息,这样一来,之前的varchar(500)就显得不够用了,于是就需要将其修改为text类型。

问题浮现

我们先来看一下现在的表结构,也就是在进行 varchar 转 text 之前的表结构,表字段长度等信息,直接通过 DM管理工具 来查看表属性, 字段 sys_config 的长度为 varchar(500)
在这里插入图片描述
达梦数据库和Mysql 数据库不同,如果你直接操作命令行来更新数据表字段类型会报错,比如我直接执行sql语句

ALTER TABLE ALM."sys_config" MODIFY config_value text;

此时可以看到 DM管理工具 直接返回错误码 -6160 数据类型变更无效,如图所示
在这里插入图片描述
那么为什么会发生数据类型变更无效,这是因为达梦数据库的内部机制不支持直接变更表结构的字段类型信息。

问题处理

方式一

对于这种问题的处理,最简单粗暴的方法就是直接复制当前表结构以及表数据,导出成sql文件,然后删除当前表,在修改导出的sql文件中的字段类型,然后重新导入sql到数据库中。下面我就来逐步操作。

1.首先需要导出当前表的结构以及数据,这里你需要用到 DM数据迁移工具,打开DM数据迁移工具,【新建工程】
在这里插入图片描述
2.点击【迁移】-【新建迁移】,输入迁移名称
在这里插入图片描述
3.在打开的迁移页面点击【下一步】,可以看到【选择迁移方式】,找到并选择【达梦迁移到文件】-【DM==>SQL】,点击【下一步】
在这里插入图片描述
4.选择迁移方式后,在输入新的页面输入 主机名、端口、用户名、密码,其他默认,点击【下一步】
在这里插入图片描述
5.输入达梦数据库信息之后,跳转到下一步页面,选择【迁移对象定义和数据】,文件编码选择【UTF-8】,继续点击【下一步】
在这里插入图片描述

6.在迁移选项页面默认当前选择即可,继续点击【下一步】
在这里插入图片描述

7.在选择指定模式页面,选择我们要迁移的具体的模式名称,点击【下一步】
在这里插入图片描述

8.下面进入指定对象选择页面,选择需要迁移的表 sys_config,点击【下一步】
在这里插入图片描述

在执行方式页面,默认页面不用操作,直接点击【下一步】进入后续操作
在这里插入图片描述

9.在审阅迁移任务,预览当前迁移任务的信息,点击【完成】
在这里插入图片描述

10.在完成迁移向导页面可以看到具体的任务执行情况,等待任务执行结束,点击【下载文件】就可以得到我们迁移的sql文件
在这里插入图片描述

11.打开迁移文件的压缩包,可以看到具体的数据文件夹 data 以及表定义文件
在这里插入图片描述

删除原始字段config_value 然后将新建的临时字段 config_value_tmp 重命名为 config_value

ALTER TABLE ALM."sys_config" DROP COLUMN config_value;ALTER TABLE ALM."sys_config" RENAME COLUMN config_value_tmp TO config_value;

执行完成之后就可以看到表结果已经是最新的表结构了
在这里插入图片描述

到这里整个达梦数据库字段类型 varchar 转 text的操作就结束了,相对于方式一来说,方式二操作的更快捷一下,但是方式二适合数据量较小的表,如果数据量较大的话,还是需要采用方式一来进行数据迁移操作。

总结

总的来说,达梦数据库不支持直接将字段类型从 varchar 转 text ,这个时候就需要采用一些曲折的方法来实现,上面就是我提到的两种方法,根据数据量的大小采用不同的方式,希望对大家有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/82987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis 缓存机制源码深度解析:一级缓存与二级缓存

MyBatis 缓存机制源码深度解析:一级缓存与二级缓存 一、一级缓存1.1 逻辑位置与核心源码解析1.2 一级缓存容器:PerpetualCache1.3 createCacheKey 方法与缓存命中1.4 命中与失效时机1.5 使用方式 二、二级缓存2.1 逻辑位置与核心源码解析2.2 查询流程、命…

【题解-Acwing】1097. 池塘计数

题目:1097. 池塘计数 题目描述 农夫约翰有一片 N∗M 的矩形土地。 最近,由于降雨的原因,部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内,如果包含雨水,则用”W”表示,如果不含…

基于Flask框架的前后端分离项目开发流程是怎样的?

基于Flask框架的前后端分离项目开发流程可分为需求分析、架构设计、并行开发、集成测试和部署上线五个阶段。以下是详细步骤和技术要点: 一、需求分析与规划 1. 明确项目边界 功能范围:确定核心功能(如用户认证、数据管理、支付流程&#…

板凳-------Mysql cookbook学习 (十--2)

5.12 模式匹配中的大小写问题 mysql> use cookbook Database changed mysql> select a like A, a regexp A; ------------------------------ | a like A | a regexp A | ------------------------------ | 1 | 1 | --------------------------…

编程实验篇--线性探测哈希表

线性探测哈希表性能测试实验报告 1. 实验目的 编程实现线性探测哈希表。编程测试线性探测哈希表。了解线性探测哈希表的性能特征,并运行程序进行验证。 2. 实验背景与理论基础 哈希表是一种高效的数据结构,用于实现符号表(Symbol Table&a…

使用Python提取PDF元数据的完整指南

PDF文档中包含着丰富的元数据信息,这些信息对文档管理和数据分析具有重要意义。本文将详细介绍如何利用Python高效提取PDF元数据,并对比主流技术方案的优劣。 ## 一、PDF元数据概述 PDF元数据(Metadata)是包含在文档中的结构化信…

【量化】策略交易类型

通过查找相关资料,这里罗列了一些常见的策略交易类型,如下: 📊 技术分析类策略 均线交叉策略(SMA、EMA)动量策略(Momentum)相对强弱指数策略(RSI)随机指标策…

【Go语言基础【17】】切片:一种动态数组

文章目录 零、概述一、切片基础1、切片的结构2、切片的创建方式3、切片的操作与扩容 二、切片的拷贝与共享内存三、切片作为函数参数 Go语言的切片(slice)是一种动态数组,提供了灵活、高效的元素序列操作。它基于底层数组实现,通过…

MybatisPlus使用DB静态工具出现找不到实体类的报错

报错:Not Found TableInfoCache. 原因在于没有创建实体类对应的mapper,并且该mapper还必须继承baseMapper。 猜测大概的原理应该是DB会去查找实体类对应的mapper,然后通过mapper去查找对应的实体类。

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …

LLMs 系列科普文(15)

前面 14 篇文章,就是本系列科普文中想介绍的大部分技术内容。重点讲述了训练这些模型的三个主要阶段和范式:预训练、监督微调和强化学习。 我向你们展示了这些步骤大致对应于我们已用于教导儿童的过程。具体来说,我们将预训练比作通过阅读说…

深入理解汇编语言中的顺序与分支结构

本文将结合Visual Studio环境配置、顺序结构编程和分支结构实现,全面解析汇编语言中的核心编程概念。通过实际案例演示无符号/有符号数处理、分段函数实现和逻辑表达式短路计算等关键技术。 一、汇编环境配置回顾(Win32MASM) 在Visual Studi…

Selenium4+Python的web自动化测试框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefo…

React 样式方案与状态方案初探

React 本身只提供了基础 UI 层开发范式,其他特性的支持需要借助相关社区方案实现。本文将介绍 React 应用体系中样式方案与状态方案的主流选择,帮助开发者根据项目需求做出合适的选择。 1. React 样式方案 1.1. 内联样式 (Inline Styles) 通过 style …

PHP中如何定义常量以及常量和变量的主要区别

在PHP编程中,常量和变量是存储数据的两种重要方式。常量在定义后值不能改变,而变量的值可以在程序执行过程中发生变化。本文将详细介绍如何在PHP中定义常量,并深入探讨常量和变量的主要区别。 一、PHP中定义常量 1. 使用 define 函数定义常…

奈飞工厂官网,国内Netflix影视在线看|中文网页电脑版入口

奈飞工厂是一个专注于提供免费Netflix影视资源的在线播放平台,致力于为国内用户提供的Netflix热门影视内容。该平台的资源与Netflix官网基本同步,涵盖电影、电视剧、动漫和综艺等多个领域。奈飞工厂的界面简洁流畅,资源分类清晰,方…

CMS内容管理系统的设计与实现:架构设计

一、整体架构方案 &#xff08;一&#xff09;架构方案选择&#xff08;根据项目规模&#xff09; 1. 中小型项目推荐方案&#xff08;团队<10人&#xff09; #mermaid-svg-cjzaHpptY8pYWnzo {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:1…

嵌入式里的时间魔法:RTC 与 BKP 深度拆解

文章目录 RTC实时时钟与BKPUnix时间戳UTC/GMT时间戳转换时间戳转换BKP简介BKP基本结构1. 电池供电模块&#xff08;VBAT 输入&#xff09;2. 侵入检测模块&#xff08;TAMPER 输入&#xff09;3. 时钟输出模块&#xff08;RTC 输出&#xff09;4. 内部寄存器组 RTC简介RTC时钟源…

STC8H系列 驱动步进电机

STC8H 驱动步进电机 一、引言二、硬件设计三、软件设计Step_Motor2.c文件Step_ Motor2.h文件 一、引言 众所周知STC8H系列有两个PWM&#xff0c;分别为PWMA和PWMB外设模块&#xff0c;我全都用上&#xff0c;岂不是就有两个带动电机的脉冲信号&#xff1f;&#xff01;哈哈哈哈…

Python高阶函数:从入门到精通

目录 Python高阶函数详解&#xff1a;从概念到高级应用引言&#xff1a;函数式编程的魅力一、高阶函数基础概念1.1 什么是高阶函数1.2 Python中的一等函数 二、内置高阶函数详解2.1 map函数&#xff1a;数据转换利器2.2 filter函数&#xff1a;数据筛选专家2.3 reduce函数&…