DB2中怎么设置主键

DB2中怎么设置主键,第1张

创建表时指定primary key,如:

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、其中,找到“标识规范”,标识增量为每次增加多少,标识种子代表起始数值大小。


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

原文地址: http://outofmemory.cn/bake/11909274.html

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

发表评论

登录后才能评论

评论列表(0条)

保存