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

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

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

 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个回答  推荐于2017-10-12

数据库中,一个表字段可以是本表的主键,同时,也可以是其他表的外键(在其他表中被设置为外键)。 若某字段是本表的外键,则该字段引用的字段一定是某表的主键。(在两个表中,两上字段可不同名,但属性一定相同)


定义:

    主键是能确定一条记录的唯一标识。比如,一条记录包括身份证号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

      主键字段不能是NULL。

      主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。

      一个表只能有一个主键。

    外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如:A表中的一个字段,在B表中,该字段是B表的主键,那他就可以在A表中被设置为外键。

第2个回答  2019-07-18
可以,这说明这两张表的主键相关联,只是那张是主表(就是该表的主键作为从表的外键),那张是从表(该表的主键同时也是外键),需要自己定义好。
第3个回答  2010-10-27
从表的外键是与主表的主键构成外键关系的,所以并不影响一个表里面的列同时是主键和外键。A表的主键可以同时是B表的外键。而C表的主键也可以同时是A表的外键。本回答被提问者采纳
第4个回答  2019-01-09
create table yuangong(--创建表名
cleld nvarchar(10) primary key,--此字段指定为表的主键
cleName nvarchar(10) not null,--不可以为空
cleSex nvarchar(1) check(cleSex='男' or cleSex='女'),--非男即女
cleAge int check(cleAge<=150),--约束年龄
cleZw nvarchar(10)
)
create table yonghu (--创建表名
cleld nvarchar(10) primary key foreign key references yuangong(cleld),--此字段指定为yonghu表的主键,同时也是yuangong(cleld)的外键,此处注意格式问题。
passwd nvarchar(10)
)