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

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)
)

总是说外键约束指定了不止一个键
是什么意思?
难道不能同时定义多个吗?
...全文
44 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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)
)

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧