create table mytab(id int not null primary key,
name char(10)
)
注意,not null 不可省略,必须与primary key 同时指定!
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 命令成功完成。
这里和 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 条记录已选择。
以sqlserver2008R2数据库为例。可以用如下方法:1、先建表:
1
2
3
create table test
(id int not null,
name varchar(10))
2、在图形界面,找到test表:
3、右键此表名,选择“设计”。
4、右侧出现的页面,找到要设置主键的列,ID列,然后右键,选择“设置主键”。
5、下面一步是要设置自增,在左侧列表中,右键“id列”,然后选择“属性”。
6、其中,找到“标识规范”,标识增量为每次增加多少,标识种子代表起始数值大小。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)