gpt4 book ai didi

mysql - 如何在mysql中插入外键

转载 作者:行者123 更新时间:2023-11-29 04:05:21 30 4
gpt4 key购买 nike

我想知道如何在表中使用外键,

我这里有一个代码:

create table penerbit_buku(
id_buku char(8),
foreign key(id_buku) references buku(id_buku),
id_penerbit char(3),
foreign key(id_penerbit) references penerbit(id_penerbit)
)

我可以改用这段代码吗:

create table penerbit_buku(
id_buku char(8) references buku(id_buku),
id_penerbit char(3) references penerbit(id_penerbit)
)

我都试过了,都成功了,对吗?

最佳答案

不,MySQL 解析但忽略 标准内联REFERENCES 语法。

当您声明一个外键以及一个单独的列定义时,它接受语法作为合法的 SQL,但随后不存储外键约束。没有报错,但是好像根本就没有写外键语法。

您必须将外键声明为表级约束(上面的第一个示例)。

这是 MySQL 缺少标准 SQL 功能的情况。该问题早在 2004 年就已报告,但从未修复! https://bugs.mysql.com/bug.php?id=4919

出现这个问题的原因是,历史上,外键约束不是MySQL本身支持的,而是InnoDB存储引擎支持的,当时是其他公司做的。他们必须为 CREATE TABLE 和 ALTER TABLE 实现自己的解析器以支持外键,并且当表级外键语法可以工作时,他们不想采取额外的步骤来支持内联外键语法。

InnoDB架构师posted这个回应:

[6 Sep 2006 10:03] Heikki Tuuri

This will be fixed in MySQL foreign keys, when they are available for all table types.

MySQL 项目正逐步将外键和类似功能直接集成到 MySQL 产品中。也许再过几年,我们会看到对标准 FK 语法的更好支持。

关于mysql - 如何在mysql中插入外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46304237/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com