微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql如何解决在表中添加外键的ERROR 1452

如何解决mysql如何解决在表中添加外键的ERROR 1452

我想将外键添加到我的表 Caracteristique 中的列中,并引用来自表本地化的列的引用:

这是我的表格:

MysqL> DESCRIBE Caracteristique;
+-------------------+-------------------+------+-----+---------+----------------+
| Field             | Type              | Null | Key | Default | Extra          |
+-------------------+-------------------+------+-----+---------+----------------+
| id                | int unsigned      | NO   | PRI | NULL    | auto_increment |
| date              | date              | NO   |     | NULL    |                |
| valeurFonciere    | int unsigned      | NO   |     | NULL    |                |
| surfaceReelleBati | int unsigned      | NO   |     | NULL    |                |
| nbPiecePrincipale | int unsigned      | NO   |     | NULL    |                |
| communeID_id      | int unsigned      | NO   |     | NULL    |                |
| typeID_id         | smallint unsigned | NO   | MUL | NULL    |                |
+-------------------+-------------------+------+-----+---------+----------------+

MysqL> DESCRIBE Localisation;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| communeID   | int unsigned | NO   | PRI | NULL    |       |
| commune     | varchar(50)  | NO   | UNI | NULL    |       |
| departement | int unsigned | NO   |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+

MysqL> SELECT id,valeurFonciere,communeID_id FROM Caracteristique LIMIT 10;
+----+----------------+--------------+
| id | valeurFonciere | communeID_id |
+----+----------------+--------------+
|  1 |          56000 |            0 |
|  2 |         165000 |            1 |
|  3 |         720000 |            2 |
|  4 |         429250 |            3 |
|  5 |         220900 |            4 |
|  6 |          42000 |            5 |
|  7 |         262000 |            6 |
|  8 |         190000 |            6 |
|  9 |         563130 |            2 |
| 10 |         535000 |            6 |
+----+----------------+--------------+

MysqL> SELECT * FROM Localisation LIMIT 10;
+-----------+-----------------------+-------------+
| communeID | commune               | departement |
+-----------+-----------------------+-------------+
|         0 | SAINT-ETIENNE-DU-BOIS |           1 |
|         1 | CHEVRY                |           1 |
|         2 | DIVONNE-LES-BAINS     |           1 |
|         3 | PERON                 |           1 |
|         4 | VALSERHONE            |           1 |
|         5 | CULOZ                 |           1 |
|         6 | ST-GENIS-POUILLY      |           1 |
|         7 | OYONNAX               |           1 |
|         8 | ST-GERMAIN-DE-JOUX    |           1 |
|         9 | GEX                   |           1 |
+-----------+-----------------------+-------------+

这是我添加外键和错误输出代码

MysqL> ALTER TABLE Caracteristique ADD CONSTRAINT fk_localisation FOREIGN KEY (communeID_id) REFERENCES Localisation(communeID);

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`DATaimmo`.`#sql-4a4_9`,CONSTRAINT `fk_localisation` FOREIGN KEY (`communeID_id`) REFERENCES `Localisation` (`communeID`))

也许你能帮忙,谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。