I would like to add a foreign key to a column in my table Caracteristique with a reference from a column from a table Localisation:
Here are my tables :
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 |
+-----------+-----------------------+-------------+
Here is my code to add the foreign key and the error output :
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`))
Maybe you can help, thanks