1 环境介绍
- x86 , 麒麟 v10
- 数据库版本 : dm8.1-3-12-2023.05.24-191193-20040-ENT
2 数据库自增列有 2 种配置方法
2.1 方法 一 : AUTO_INCREMENT
CREATE TABLE "SYSDBA"."AT240828_AUTO_INCREMENT"
(
"C1" INT AUTO_INCREMENT NOT NULL,
"C2" INT,
PRIMARY KEY("C1")) STORAGE(ON "MAIN", CLUSTERBTR) ;
总共3个语句正依次执行...
[执行语句1]:
INSERT INTO "SYSDBA"."AT240828_AUTO_INCREMENT" VALUES(1,1);
执行成功, 执行耗时1毫秒. 执行号:1126
影响了1条记录
[执行语句2]:
INSERT INTO "SYSDBA"."AT240828_AUTO_INCREMENT" VALUES(2,2);
执行成功, 执行耗时1毫秒. 执行号:1127
影响了1条记录
[执行语句3]:
COMMIT;
执行成功, 执行耗时1毫秒. 执行号:1128
影响了0条记录
3条语句执行成功
2.2 方法 二 : IDENTITY (数据库默认类型)
CREATE TABLE "SYSDBA"."AT240828_IDENTITY"
(
"C1" INT IDENTITY(1, 1) NOT NULL,
"C2" INT,
PRIMARY KEY("C1")) STORAGE(ON "MAIN", CLUSTERBTR) ;
- 此方法若要手动设置自增列值 需要对操作的表每次配置
- 同一时刻 , 数据库中只能有 1 张表 可以开启配置
- 新表配置后 , 其他表默认自动关闭此配置
SET IDENTITY_INSERT "SYSDBA"."AT240828_IDENTITY" ON
- 插入数据时 insert 语句必须带列名 (成功写入数据)
INSERT INTO "SYSDBA"."AT240828_IDENTITY"(C1,C2) VALUES(1,1);
总共2个语句正依次执行...
[执行语句1]:
SET IDENTITY_INSERT "SYSDBA"."AT240828_IDENTITY" ON;
执行成功, 执行耗时1毫秒. 执行号:5500438
影响了0条记录
[执行语句2]:
INSERT INTO "SYSDBA"."AT240828_IDENTITY" VALUES(1,1);
执行失败(语句2)
-2723: 第1 行附近出现错误:
仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
1条语句执行成功
1条语句执行失败
3 更多达梦数据库学习使用列表