请问 sql 字段 可不可以 即是主键又是外键

请问 sql 字段 可不可以 即是主键又是外键,第1张

可以,这说明这两张表的主键相关联,只是那张是主表(就是该表的主键作为从表的外键),那张是从表(该表的主键同时也是外键),需要自己定义好。

CREATE TABLE `baidispatch_cost` (

`id` varchar(50) NOT NULL COMMENT 'id',

`belong` varchar(15) DEFAULT NULL COMMENT '设计交付日期',

primary key (`id`),

constraint `FK_DISPATCH_ID` foreign key (`id`) references `dispatch_order` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='成本表'

扩展资料:

主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。

参考资料来源:百度百科-数据库主键

1.主键:唯一标识表中的所有行的一个列或一组列。主键不允许空值。不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行。表中可以有不止一个键唯一标识行,每个键都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。尽管表不要求具有主键,但定义主键是很好的做法。 在规范化的表中,每行中的所有数据值都完全依赖于主键。例如,在以 EmployeeID 作为主键的规范化的 employee 表中,所有列都应包含与某个特定职员相关的数据。该表不具有 DepartmentName 列,因为部门的名称依赖于部门 ID,而不是职员 ID。外键:外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。

定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。 外键: 当创建或更改表时可通过定义 FOREIGN KEY 约束来创建外键。 主键是本表的唯一标识,而外键是与另一个表相关联

2.一个表的外键 可以 是另一张表的主键, 但不可以说 外键必须是另一张表的主键。

可以在创建表的时候创建,也可以在创建表之后创建。

创建表时创建:

create table student

(id int primary key,

name char(4),

dept char(9)

sex char(4))

create table grade

(id int ,

grade int

constraint id_fk foreign key (id) references student (id)

)

或创建了两表之后再建

alter table grade

add constraint id_fk foreign key (id) references student (id)

呵呵,希望能帮助你。


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

原文地址: https://outofmemory.cn/sjk/9992854.html

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

发表评论

登录后才能评论

评论列表(0条)

保存