为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:LINUX
【CPU】:
【问题描述】*:
过程:我们原来使用的是MySQL,现在想从MySQL迁移到国产达梦数据库。在主键指定为null时候发生报错。
示例SQL:
INSERT INTO DOCTOR_LOGIN_OUT_LOG (LOGIN_OUT_LOG_PK, LOGIN_NAME, DOCTOR_FK, DOCTOR_NAME, HOSPITAL_FK, HOSPITAL_DEPARTMENT_FK, PLATFORM, LOG_TYPE, LOG_TIME, IP_ADDRESSES)
VALUES (NULL,‘18800000’, 3777, ‘梁博’, 100101, 4, ‘PC’, ‘login’, ‘2018-02-01 09:58:32’, ‘内网IP:192.168.1.91,外网IP:192.168.1.91’);
MySQL执行成功,达梦SQL执行失败
下面为达梦数据库报错信息:
。
下面为MySQL的建表语句:
CREATE TABLE doctor_login_out_log (
LOGIN_OUT_LOG_PK INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
LOGIN_NAME VARCHAR(20) NOT NULL COMMENT ‘登录账号’,
DOCTOR_FK INT(11) NOT NULL COMMENT ‘DOCTOR_INFO表主键’,
DOCTOR_NAME VARCHAR(64) NOT NULL COMMENT ‘医生姓名’,
HOSPITAL_FK INT(11) DEFAULT NULL COMMENT ‘HOSPITAL_INFO表主键’,
HOSPITAL_DEPARTMENT_FK INT(11) DEFAULT NULL COMMENT ‘HOSPITAL_DEPARTMENT表主键,未挂靠的为空’,
PLATFORM VARCHAR(20) NOT NULL COMMENT ‘平台(PC:医生平台PC板、iPad:医生平台iPad版)’,
LOG_TYPE VARCHAR(20) NOT NULL COMMENT ‘日志类型(login:登入,logout:登出)’,
LOG_TIME DATETIME NOT NULL COMMENT ‘日志时间’,
IP_ADDRESSES VARCHAR(128) DEFAULT NULL COMMENT ‘IP地址’,
PRIMARY KEY (LOGIN_OUT_LOG_PK),
KEY IDX_LOGIN_NAME (LOGIN_NAME),
KEY IDX_DOCTOR_FK (DOCTOR_FK),
KEY IDX_LOG_TIME (LOG_TIME)
) ENGINE=INNODB AUTO_INCREMENT=567456 DEFAULT CHARSET=utf8 COMMENT=‘医生登入/登出日志’
通过达梦DTS工具迁移,下面为达梦的建表语句:
CREATE TABLE “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”
(
“LOGIN_OUT_LOG_PK” INT IDENTITY(2076, 1) NOT NULL,
“LOGIN_NAME” VARCHAR(80) NOT NULL,
“DOCTOR_FK” INT NOT NULL,
“DOCTOR_NAME” VARCHAR(256) NOT NULL,
“HOSPITAL_FK” INT,
“HOSPITAL_DEPARTMENT_FK” INT,
“PLATFORM” VARCHAR(80) NOT NULL,
“LOG_TYPE” VARCHAR(80) NOT NULL,
“LOG_TIME” TIMESTAMP(0) NOT NULL,
“IP_ADDRESSES” VARCHAR(512),
NOT CLUSTER PRIMARY KEY(“LOGIN_OUT_LOG_PK”)) STORAGE(ON “MAIN”, CLUSTERBTR) ;
COMMENT ON TABLE “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG” IS ‘医生登入/登出日志’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“DOCTOR_FK” IS ‘DOCTOR_INFO表主键’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“DOCTOR_NAME” IS ‘医生姓名’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“HOSPITAL_DEPARTMENT_FK” IS ‘HOSPITAL_DEPARTMENT表主键,未挂靠的为空’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“HOSPITAL_FK” IS ‘HOSPITAL_INFO表主键’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“IP_ADDRESSES” IS ‘IP地址’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“LOGIN_NAME” IS ‘登录账号’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“LOGIN_OUT_LOG_PK” IS ‘主键’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“LOG_TIME” IS ‘日志时间’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“LOG_TYPE” IS ‘日志类型(login:登入,logout:登出)’;
COMMENT ON COLUMN “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”.“PLATFORM” IS ‘平台(PC:医生平台PC板、iPad:医生平台iPad版)’;
CREATE INDEX “IDX_LOGIN_NAME” ON “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”(“LOGIN_NAME” ASC) STORAGE(ON “MAIN”, CLUSTERBTR) ;
CREATE INDEX “IDX_LOG_TIME” ON “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”(“LOG_TIME” ASC) STORAGE(ON “MAIN”, CLUSTERBTR) ;
CREATE INDEX “INDEX532355604345300” ON “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”(“DOCTOR_FK” ASC) STORAGE(ON “MAIN”, CLUSTERBTR) ;
CREATE UNIQUE INDEX “INDEX532355667411000” ON “YIZHEN_RZ”.“DOCTOR_LOGIN_OUT_LOG”(“LOGIN_OUT_LOG_PK” ASC) STORAGE(ON “MAIN”, CLUSTERBTR) ;
你好,我也遇到了这个问题,请教一下,解决了吗?怎么解决?

“LOGIN_OUT_LOG_PK” INT IDENTITY(2076, 1) NOT NULL, 建表语句里面写的比较清楚了该列是NOT NULL,另外该列为主键,主键列的值的属性是非空且唯一的