【达梦数据库】大字段无法排序、自增列无法赋值

MySQL数据转到达梦数据库"目前"遇到的问题:

SET IDENTITY_INSERT 表名 ON:表示开启对标识列显示值插入模式,允许对标识列显示值进行手动插入数据。
SET IDENTITY_INSERT 表名 OFF:表示关闭对标识列显示值的插入操作,标识列不允许手动插入显示值。

  • 插入操作insert,注意自增列无法赋值,例如 insert into T1(id,name,age) values(1,'joker',18),当id列设置自增时,达梦数据库会报错,无法赋值自增列

    • 解决方法1:SET IDENTITY_INSERT T1 ON;注意这个ON和OFF是成对出现,即上述例子可以这样写
      • SET IDENTITY_INSERT T1 ON; insert into T1(id,name,age) values(1,'joker',18);SET IDENTITY_INSERT T1 OFF;
    • 解决方案二:插入时不传入idinsert into T1(name,age) values('joker',18)
  • 查询操作:遇到的较多的是 distinct 问题(可以引申到order by等问题),达梦不允许大字段排序,distinct 出现在select 语句中,select查询出的列中存在clob blob text 等类型会报错。

    • 解决方案一:非必要情况下,如果可以,将表中字段类型为text的,更改为varchar,需要注意的是varchar最长是8188字节
    • 解决方案二:确实此字段必须要超过8188字节长度,继续用text,那就需要优化SQL,在对重复结果集没有强烈要求情况下,将distinct 改为 all或者直接去掉distinct

【参考:达梦官方网站

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值