gpt4 book ai didi

sql - mysql中使用外键约束插入的建议

转载 作者:行者123 更新时间:2023-11-29 06:24:24 24 4
gpt4 key购买 nike

我有一个包含 2 个条目的表格。

类似

CREATE TABLE  `db`.`main` (
`id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
);

这两个条目的 ID 是自动生成的主键。

我有另一个表,其中有一个规则链接

CREATE TABLE  `db`.`day` (
`main_id` int(10) unsigned NOT NULL,
`day` tinyint(4) NOT NULL,
CONSTRAINT `fk_db_main` FOREIGN KEY (`main_id`) REFERENCES `main` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
);

现在我可以使用成功获得结果

SELECT * FROM main where id='9';

但是当我尝试运行时

INSERT INTO day (main_id, day) VALUES (9, 0);

我明白了

“无法添加或更新子行:外键约束失败 (db.day, CONSTRAINT fk_db_main FOREIGN KEY ( >main_id) 引用 main (id) 删除时不执行任何操作 更新时不执行任何操作)(1452)"

对我在插入中缺少的内容有什么建议吗?

**我在提问时没有列出问题的实际原因。实际原因是主数据库表位于MyISAM中,而InnoDB表无法创建连接到它的外键。简而言之,MyISAM 不支持外键,即使它们来自其他表。

最佳答案

如果我删除 CREATE TABLE 语句中的 db. 部分(并在 main 中插入一行带有id 为 9)。也许问题是您使用的 db. 前缀不一致,即在 TABLE 之后但不在 CONSTRAINT 子句中...?

关于sql - mysql中使用外键约束插入的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928855/

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