db2 sql语句设id自动增长

db2 sql语句设id自动增长,第1张

你的写法是  SQL Server 的写法

DB2 的写法如下:

db2 => CREATE TABLE test_create_tab2 (

db2 (cont.) =>   id INT NOT NULL PRIMARY KEY generated always as identity,

db2 (cont.) =>   val  VARCHAR(10)

db2 (cont.) => )

DB20000I  SQL 命令成功完成。

db2 => INSERT INTO test_create_tab2(val) VALUES ('NO id')

DB20000I  SQL 命令成功完成。

如果你需要设置  自动递增的 起始数值的话。

参考下面的例子。

db2 => drop TABLE test_create_tab2

DB20000I  SQL 命令成功完成。

db2 => CREATE TABLE test_create_tab2 (

db2 (cont.) =>   id INT NOT NULL PRIMARY KEY generated always as identity

db2 (cont.) =>   (Start With 100

db2 (cont.) =>    Increment by 1

db2 (cont.) =>    minvalue 100

db2 (cont.) =>    maxvalue 999999999

db2 (cont.) =>    no cycle cache 5 no order),

db2 (cont.) =>   val  VARCHAR(10)

db2 (cont.) => )

DB20000I  SQL 命令成功完成。

参考下面的例子。db2 =>drop TABLE test_create_tab2DB20000I SQL 命令成功完成。 db2 =>CREATE TABLE test_create_tab2 (db2 (cont.) => id INT NOT NULL PRIMARY KEY generated always as identitydb2 (cont.) => (Start With 100db2 (cont.) => Increment by 1db2 (cont.) => minvalue 100db2 (cont.) => maxvalue 999999999db2 (cont.) => no cycle cache 5 no order),db2 (cont.) => val VARCHAR(10)db2 (cont.) =>)DB20000I SQL 命令成功完成。

你可运行控制中心,然后修改表,有很多限制的.

对于一个已经存在的字段,以前有内容了,如果你这样改,其内容必改,这可能出问题,所以DB2不支持.

建议建立一个新的自增字段.

实验结果:

先设置整型字段然后再ALTER,结果表中无记录时成功,而有记录时失败。

那么就这么做:

create table b like a

insert into b select * from a

drop table a

create table a like b

alter table a add column id int

CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE A ( A INTEGER , ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE ), ID1 SMALLINT NOT NULL ) IN IBMDB2SAMPLEREL ', -1, ? )

INSERT INTO A(COL1,.....,COLN) SELECT * FROM B不包括A的新增自增列,就将数据导回并且ID列也自动有了值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11006961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存