J'ai eu la maladresse de croire que Le type ENUM de Mysql pouvait servir de garde fou.
En effet
[SQL]
create table `test_enum`(
`id` int UNSIGNED NOT NULL AUTO_INCREMENT ,
`monEnum` enum('a','brol','7') ,
`monAutreEnum` enum('a','brol','7') NOT NULL ,
PRIMARY KEY (`id`)
) ;
Je ne veux que 'a','brol' ou '7', éventuellement NULL dans monEnum
insert into `test_enum`(`id`,`monEnum`,`monAutreEnum`) values ( NULL,'a','a'); # (1 row(s) affected) insert into `test_enum`(`id`,`monEnum`,`monAutreEnum`) values ( NULL,NULL,'a'); # (1 row(s) affected) insert into `test_enum`(`id`,`monEnum`,`monAutreEnum`) values ( NULL,'a',NULL); # Error Code : 1048 # Column 'monAutreEnum' cannot be null insert into `test_enum`(`id`,`monEnum`,`monAutreEnum`) values ( NULL,NULL,NULL); # Error Code : 1048 # Column 'monAutreEnum' cannot be null
id …[Lire plus]