使用外键创建表
CREATE TABLE Account (
AccountID INT UNSIGNED NOT NULL,
AccountNo INT UNSIGNED NOT NULL,
PersonID INT UNSIGNED,
PRIMARY KEY (AccountID),
FOREIGN KEY (PersonID) REFERENCES Person (PersonID)
) ENGINE=InnoDB;
外键: 外键(FK
)是引用表中的单列或列的多列组合。该 FK
被确认存在于引用的表中。强烈建议引用的表键确认 FK
为主键,但不强制执行。它被用作快速查找引用的地方,它不需要是唯一的,实际上它可以是最左边的索引。
外键关系涉及保存中心数据值的父表,以及具有指向其父级的相同值的子表。FOREIGN KEY 子句在子表中指定。父表和子表必须使用相同的存储引擎。它们不能是 TEMPORARY 表。
外键和引用键中的相应列必须具有相似的数据类型。整数类型的大小和符号必须相同。字符串类型的长度不必相同。对于非二进制(字符)字符串列,字符集和排序规则必须相同。
注意: InnoDB 存储引擎(不是 MyISAM 或 MEMORY)支持外键约束。使用其他引擎的数据库设置将接受此 CREATE TABLE
语句,但不会考虑外键约束。 (虽然较新的 MySQL 版本默认为 InnoDB
,但明确的做法是好的。)