FOREIGN KEY de valeur NULL : erreur 1452
Bonjour,
j'ai un p'tit souci pour la création d'une base de données avec contraintes d'intégrités.
Code:
1 2 3 4 5 6
| PERSONNE ETABLISSEMENT GROUPE
id -(0,n)---(appartient)---(0,n)- id -(0,1)---(appartient)---(1,n)- id
nom nom nom
adresse adresse
telephone telephone
fax fax |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CREATE TABLE `t_groupe` (
`id_groupe` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`nom` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id_groupe`),
UNIQUE KEY (`nom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `t_groupe` (`id_groupe`, `nom`) VALUES
(1, "BLABLA");
CREATE TABLE `t_etablissement` (
`id_etablissement` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`nom` VARCHAR(100) NOT NULL,
`adresse` VARCHAR(255) NOT NULL,
`tel` VARCHAR(10) NOT NULL,
`id_groupe` SMALLINT(5) UNSIGNED,
PRIMARY KEY (`id_etablissement`),
KEY (`nom`),
FOREIGN KEY (`id_groupe`) REFERENCES `t_groupe` (`id_groupe`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `t_etablissement` (`id_etablissement`, `id_groupe`, `nom`, `adresse`, `tel`) VALUES
(1, NULL, "AZERTY", "31, rue Diderot", "0102030405"); |
Dans ce SI, il est donc possible d'avoir des établissements sans groupe. Mais alors comment gérer la FOREIGN KEY T_etablissement.id_groupe ? J'ai essayé avec NULL mais cela semble être bloquant... :?
Alors comment faire ?
Merci d'avance :roll: