dm8自增列 - -达梦数据库自增列

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_INSERTON时,才能对自增列赋值

1条语句执行成功
1条语句执行失败

3 更多达梦数据库学习使用列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值