Salut à tous.
Pour créer une clef étrangère, vous devez :
1) la table mère doit être créé avant la table fille.
2) vous devez mettre exactement la même déclarative dans la table mère que celle qui est en clef étrangère dans la table fille.
Autrement dit, si vous avez dans la table mère :
id integer unsigned not null auto_increment primary key,
vous devez déclarer :
1 2
| clef integer unsigned not null,
CONSTRAINT `FK_MERE` FOREIGN KEY (`clef`) REFERENCES `mere` (`id`) ON DELETE CASCADE ON UPDATE CASCADE |
3) quand vous insérez une nouvelle clef étrangère, la valeur doit exister au préalable dans la table mère.
4) attention aux mots réservés comme "update" qu vous utilisez en tant que nom de base de données.
5) Pour déclarer une colonne de mise à jour, voici comment procéder :
1 2
| `create_date` TIMESTAMP(6) DEFAULT current_timestamp(6),
`update_date` TIMESTAMP(6) DEFAULT current_timestamp(6) ON UPDATE CURRENT_TIMESTAMP(6), |
A l'insertion, 'create_date' et 'update_date' seront renseignées.
Sur une mise-à-jour, seul la colonne 'update_date' sera modifée.
Vous ne devez pas référencer ces deux colonnes lors d'une insertion ou modification, car c'est automatique.
C'est exactement la même chose avec la colonne 'id' qui est auto incrémentée.
@+
Partager