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 命令成功完成。
这里和 SQL Server 一样,大家都不能手动指定那个 自增id 的数值
db2 => INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0798N 不能为定义为 GENERATED ALWAYS 的列 "ID" 指定值。 SQLSTATE=428C9
这里和 SQL Server 不一样,SQL Server 会自动排除掉那个自动递增的列
db2 => INSERT INTO test_create_tab2 VALUES ('Is Auto ?')
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0117N 赋值数目与指定的或隐含的列数或变量数不一样。 SQLSTATE=42802
关于 初始数值的设定。
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 =>INSERT INTO test_create_tab2(val) VALUES ('NO id')
DB20000I SQL 命令成功完成。
db2 =>select * from test_create_tab2
ID VAL
----------- ----------
100 NO id
1 条记录已选择。
db2 =>select identity_val_local() from SYSIBM.SYSDUMMY1
1
---------------------------------
100.
1 条记录已选择。
create table user(name varchar(30),n1 integer,
n2 integer ,
id integer generated always as (n1+n2))
如:
create table strategy
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)