MySQL迁移GaussDB T需要转换的语法1【转】

举报
GaussDB-虎哥 发表于 2019/11/12 20:17:51 2019/11/12
【摘要】 ------转注:本文来自2019-7-3之前的迁移经验,因版本迭代周期为3个月,个别项目可能已经发生变化,请读者自行验证,欢迎把验证结果反馈。 (1)不支持create database和use database语句,需要删除 (2)不支持ENGINE=InnoDB 及其他 ENGINE= ***,需要删除 (3)不支持int(10),...

------转注:本文来自2019-7-3之前的迁移经验,因版本迭代周期为3个月,个别项目可能已经发生变化,请读者自行验证,欢迎把验证结果反馈。


1)不支持create databaseuse database语句,需要删除


2)不支持ENGINE=InnoDB 及其他 ENGINE= ***,需要删除


3)不支持int(10), bigint(10),需要转换为 integer, bigint.


4sql语句单行不能超过65536个字符,如果超过,需要换行


5去掉表名、列名等对象上的反引号`或引号,否则表名会区分大小写,使用的时候也必须加反引号`或引号。Zenith是通过将sql中的对象名转换成大写来实现不区分大小的功能的,如果加了反引号或引号将会原样保存,使用的时候也得加反引号或引号,否则会被自动转成大写,导致对象名不匹配。


6)不支持字符集:latin1, gb2312 ,需要转换为utf8


7)唯一约束:不支持UNIQUE KEY 约束名字 (列名)写法 ,需要转换为:UNIQUE (`列名`) 或者 CONSTRAINT 约束名字 UNIQUE (列名)


8longtext/text 类型不支持设置字符集,也不支持建立索引

 content longtext CHARACTER SET gbk 需要转换为: content longtext


9varchar类型如果要存汉字,则需要将长度*4,长度超过8000则需要改为text/clob类型


10)不支持表级别注释 COMMENT='注释信息 ' ,需要删除表注释,但列注释支持。


11)列名不能取GaussDB关键字,否则报错:

关键字有:user group case 


12insert插入数据时,字符列字段只允许用单引号 '***',不支持双引号"***",例如:insert into test values('sdf');  不支持的写法:insert into test values("sdf");


13insert插入数据时,如果插入的字符串有单引号',需要转换为双引号",或者用两个单引号("),不支持\',

 例如:mysql语法:insert into test values('name=\'test\'***');

 需要转换为 Gaussdb语法:insert into test values(' name=''test''***');

 或者 insert into test values(' name=“test”***f ');


14)不支持PACK_KEYS,需要删除


15)建议删除sql文件的注释,否则可能报错


16)创建索引:不支持  KEY 表名 (列名写法

需要在表外面创建:create index 索引名 on 表名 (列名) online;



 

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。