同福

MySQL数据库转达梦数据库DM8的方法

介绍

介绍


NOT NULL

问题

在MySQL里面数据表字段即使设置了NOT NULL,在插入数据的时候依然可以不提供字段值。可是在达梦里面这是行不通的(本来就应该这样),需要提供一个非NULL的值才行。

解决方案

可以通过为字段设置DEFAULT默认值的方式,让数据表字段在插入数据的时候可以不用提供字段值。

日期/时间

问题

在MySQL里面Date、Time和Datetime类型的字段,可以提供设置一串零来设置一个“无效”值,例如:Date可以设置0000-00-00,Datetime可以设置0000-00-00 00:00:00。但是在达梦里面不允许设置这种奇怪的值的,但是可以设置空值。

解决方案

可以通过为字段设置DEFAULT默认值为空值的方式,让数据表字段可以在插入数据的时候可以正常写入。

代码内如果有向数据表内写入类似0000-00-00这样的“无效”值的逻辑,只能手动改成写入空值。

系统关键字

问题

达梦有非常多的系统关键字,MySQL也有一些系统关键字,不过没有达梦的多,类型user这样的词在达梦里面都是关键字,而MySQL里面就可以随便使用。

解决方案

在达梦里面所有的关键字需要通过双引号括起来表示这个不要当作关键字解析,在MySQL里面使用`...`(~字符同一个按键)括起来表示。

select * from "user"

as别名大写

问题

达梦数据库如果在select时候给字段用as设置了别名,则无论别名是大写还是小写最终查询出来的一定是大写,这是非常恶心的。

解决方案

在编写SQL语句的时候,把字段as出来的别名用双引号括起来。

select userId as "uid", userName as "uname" from "user"