a INT NOT NULL,
b INT NOT NULL, c INT NOT NULL,
PRIMARY KEY(a,b)
)
这是在查询分析器里运行的。
如果手工建表的话,只需按住Ctrl键同时选择两个字段就可以设置复合主键了。
例如:\x0d\x0a已有一个表test_key,其中a1列为主键。\x0d\x0acreate table TEST_KEY\x0d\x0a(\x0d\x0a a1 VARCHAR2(3) not null,\x0d\x0a a2 VARCHAR2(3),\x0d\x0a b1 VARCHAR2(3),\x0d\x0a b2 VARCHAR2(3)\x0d\x0a)\x0d\x0a \x0d\x0aalter table TEST_KEY\x0d\x0a add constraint PK_TEST_KEY primary key (A1)\x0d\x0a using index\x0d\x0a \x0d\x0a现在要将a2,b1也增加到主键中与原有的a1一起组成复合主键。语句如下:\x0d\x0aalter table TEST_KEY\x0d\x0a drop constraint PK_TEST_KEY cascade\x0d\x0aalter table TEST_KEY\x0d\x0a add constraint PK_TEST_KEY primary key (A1, A2, B1)\x0d\x0a using index\x0d\x0a \x0d\x0a这样就可以了。建立联合主键有两种方式:
一种是在建表时就写出,语句如下:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3????
字段名N???? )
另一种是在建表后更改,语句如下:
alter table 你的表名 add constraint pk_你的表名 primary key (字段1,字段2)
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
创建联合主键还可以这样写:
create table huayunkeji_today(device_id int , year int, month int, day int, hour int, temperature float, humidity float,
primary key(device_id,year,month,day,hour))
扩展资料:
联合主键的使用情况及优点:
联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。
可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了。
再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)