如何在MySQL中创建具有自引用字段的表?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在MySQL中创建具有自引用字段的表?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2081字,纯文字阅读大概需要3分钟。
内容图文
![如何在MySQL中创建具有自引用字段的表?](/upload/InfoBanner/zyjiaocheng/911/477f45ec103c402a95657f0023728436.jpg)
在GTFS中,字段parent_station来自stop_id(自引用)或NULL.例如(请注意,parent_station可能为NULL),
SELECT stop_id, stop_name, parent_station FROM stops where stop_id='1970324837184617' OR parent_station='1970324837184617';
+------------------+----------------------+------------------+
| stop_id | stop_name | parent_station |
+------------------+----------------------+------------------+
| 1970324837184617 | Saint Agne-SNCF | |
| 3377699720880648 | Saint Agne-SNCF | 1970324837184617 |
| 3377699720880649 | Saint Agne-SNCF | 1970324837184617 |
| 3377699722011100 | Saint Agne-SNCF | 1970324837184617 |
| 3377699722011101 | Saint Agne-SNCF | 1970324837184617 |
| 3377699722914835 | Saint Agne Gare SNCF | 1970324837184617 |
+------------------+----------------------+------------------+
6 rows in set (0,01 sec)
我创建了一个自引用表:
CREATE TABLE `stops` (
stop_id VARCHAR(255) NOT NULL PRIMARY KEY,
stop_code VARCHAR(255),
stop_name VARCHAR(255),
stop_desc VARCHAR(255),
stop_lat DECIMAL(8,6),
stop_lon DECIMAL(8,6),
location_type INT(2),
parent_station VARCHAR(255),
-- the field `parent_station` might be blank (NULL)
FOREIGN KEY parent_station REFERENCES stops(stop_id) -- self-referential table fields
);
但遇到这个问题,
ERROR 1064 (42000) at line 99: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘FOREIGN KEY parent_station REFERENCES stops(stop_id)
)’ at line 11
在@Awita的帮助下,我更正了语法并成功创建了表.
FOREIGN KEY (parent_station) REFERENCES stops(stop_id)
但是在加载本地数据时会出现一个新问题.
LOAD DATA LOCAL INFILE 'stops.txt' INTO TABLE stops FIELDS TERMINATED BY ',' IGNORE 1 LINES;
错误:
ERROR 1452 (23000) at line 140: Cannot add or update a child row: a foreign key constraint fails (`paris_gtfs`.`stops`, CONSTRAINT `stops_ibfk_1` FOREIGN KEY (`parent_station`) REFERENCES `stops` (`stop_id`))
此问题是由NULL parent_station引起的?
解决方法:
这是一个简单的语法错误.试试这个:
FOREIGN KEY (parent_station) REFERENCES stops(stop_id)
内容总结
以上是互联网集市为您收集整理的如何在MySQL中创建具有自引用字段的表?全部内容,希望文章能够帮你解决如何在MySQL中创建具有自引用字段的表?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。