使用外键创建表

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,但明确的做法是好的。)