gpt4 book ai didi

php - MySQL插入未定义的外键

转载 作者:行者123 更新时间:2023-11-29 00:58:30 25 4
gpt4 key购买 nike

我有一些具有这种模式的表(简化):

CREATE TABLE folders(
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
parent INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (id),
INDEX FK_folders_folders_id (parent),
CONSTRAINT FK_folders_folders_id FOREIGN KEY (parent)
REFERENCES folders (id) ON DELETE CASCADE ON UPDATE CASCADE
)

1个文件夹可以有多个子文件夹并且可以属于另一个文件夹。如果它是根文件夹,则父文件夹将包含它自己的 ID。

问题是:如何创建根文件夹? ID 是 auto_increment,我只能在插入一行后才能得到它,但我无法在未定义父项时插入行。递归...

最佳答案

您可以从父字段中删除 NOT NULL 属性,这样您就可以获得根。当然,在这种情况下,您必须保证代码中文件夹树的一致性,而不是通过数据库。MySQL 引用手册不建议用户这样做:

You are advised to use foreign keys that reference only UNIQUE and NOT NULL keys. http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

但这始终取决于您。

关于php - MySQL插入未定义的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908101/

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