zoukankan      html  css  js  c++  java
  • MySQL转到达梦数据库【目前】遇到过问题及解决方案

    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

    【参考:达梦官方网站

    -------- 芝兰生于空谷,不以无人而不芳
  • 相关阅读:
    google 以图搜图
    一个idear
    负责
    腾讯笔试
    迅雷笔试题
    如何删除表中重复的字段
    sed的使用
    C++ Html解析器HtmlCxx用户手册和源代码解析
    makefile从无到有
    深入理解函数指针
  • 原文地址:https://www.cnblogs.com/tizer/p/15404104.html
Copyright © 2011-2022 走看看