可以,这说明这两张表的主键相关联,只是那张是主表(就是该表的主键作为从表的外键),那张是从表(该表的主键同时也是外键),需要自己定义好。
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)
呵呵,希望能帮助你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)