约束中指定了不止一个键什么意思??立即给分

qinahia 2003-12-12 07:36:56
定义了一个表a,其中设置col_a int,col_b int为主键
又定义了一个表b,定以外键入下:
create table b as
(
b1 int,
b2 int
constraint fk_a
(b1,b2)
references a (col_a,col_b)
)

总是说外键约束指定了不止一个键
是什么意思?
难道不能同时定义多个吗?
...全文
15 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuiniu 2003-12-12
列约束和表约束
约束可以是列约束或表约束:

列约束被指定为列定义的一部分,并且仅适用于那个列(前面的示例中的约束就是列约束)。


表约束的声明与列的定义无关,可以适用于表中一个以上的列。
当一个约束中必须包含一个以上的列时,必须使用表约束。

例如,如果一个表的主键内有两个或两个以上的列,则必须使用表约束将这两列加入主键内。假设有一个表记录工厂内的一台计算机上所发生的事件。假定有几类事件可以同时发生,但不能有两个同时发生的事件属于同一类型。这一点可以通过将 type 列和 time 列加入双列主键内来强制执行。

CREATE TABLE factory_process
(event_type int,
event_time datetime,
event_site char(50),
event_desc char(1024),
CONSTRAINT event_key PRIMARY KEY (event_type, event_time) )

  • 打赏
  • 举报
回复
shuiniu 2003-12-12
列级约束 只能指定一列
表级约束 可以指定多列
  • 打赏
  • 举报
回复
txlicenhe 2003-12-12
create table b as
(
b1 int,
b2 int
constraint fk_a foreign key (b1,b2)
references a (col_a,col_b)
)
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-12-12 07:36
社区公告
暂无公告