mysql-parent_id外键(自引用)和null?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-parent_id外键(自引用)和null?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1674字,纯文字阅读大概需要3分钟。
内容图文
![mysql-parent_id外键(自引用)和null?](/upload/InfoBanner/zyjiaocheng/883/fa504f0847024c08a9616d82d1c338f3.jpg)
翻阅Bill Karwin的书“ SQL Antipatterns”,第3章,朴素树(邻接表,父子关系),其中有一个注释表的示例.
CREATE TABLE Comments (
comment_id SERIAL PRIMARY KEY,
parent_id BIGINT UNSIGNED,
comment TEXT NOT NULL,
FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)
);
样本数据
| comment_id | parent_id | comments
|------------| ----------|-------------------------------------
|1 | NULL |What’s the cause of this bug?
|2 | 1 |I think it's a null pointer
|3 | 2 |No, I checked for that
|4 | 1 |We need to check for invalid input
|5 | 4 |Yes,that's a bug
|6 | 4 |Yes, please add a check
|7 | 6 |That fixed it
该表具有comment_id,parent_id和comment列. parent_id是引用comment_id的外键.
comment_id自动从1开始递增.
题.
如果假定parent_id是引用comment_id的外键,那么当具有外键的目的是确保引用完整性时,带有comment_id = 1的行的parent_id为null / 0.
注意:我按原样创建了表格,并尝试输入数据并收到此错误
#1452 – Cannot add or update a child row: a foreign key constraint fails (`category`.`comments`, CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `comments` (`comment_id`))
解决方法:
从以上CW答案中的评论中收集一些结论.
>对于“根”节点,此表中的parent_id为NULL,该节点位于树的顶部,因此没有父节点.
>读取https://dev.mysql.com/doc/refman/5.7/en/null-values.html:请注意,NULL值与数字类型不同,例如0或字符串类型为空字符串.有关更多信息,请参见第Problems with NULL Values节.
>另请注意,关键字NULL与带有单词’NULL’的文字字符串不同.
>阅读https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html:在MySQL中,SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的别名.
内容总结
以上是互联网集市为您收集整理的mysql-parent_id外键(自引用)和null?全部内容,希望文章能够帮你解决mysql-parent_id外键(自引用)和null?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。