Bonjour valeureux Krop,
Envoyé par
Krop
je me rends compte aujourd'hui que, selon mysql workbench, une table ne peut pas avoir deux colonnes auto incrémentée...
Une idée du pourquoi d'une telle restriction ? J'imagine que c'est pour coller à mysql mais bon, ça ne fait que déporter la question d'un niveau.
Comme son nom l’indique, MySQL Workbench est plutôt orienté MySQL , or que se passe-t-il quand on soumet l’instruction suivante à MySQL ?
CREATE TABLE KROP
(
kropid int not null auto_increment
, kropid_bis int not null auto_increment
, nom varchar(16)
, salaire int not null
, CONSTRAINT KROP_PK PRIMARY KEY (kropid)
) ;
Eh bien, on s’en prend une sévère... :
Error Code: 1075. Incorrect table definition; there can be only one auto column and it must be defined as a key.
Même punition avec MS SQL Server :
CREATE TABLE KROP
(
kropid int not null identity
, kropid_bis int not null identity
, nom varchar(16)
, salaire int not null
, CONSTRAINT KROP_PK PRIMARY KEY (kropid)
) ;
insert into KROP (nom, salaire) values ('krop', 100) ;
insert into KROP (nom, salaire) values ('griftou', 200) ;
insert into KROP (nom, salaire) values ('fsmrel', 100) ;
select * from KROP ;
=>
Msg 2744, Level 16, State 2, Line 1
Multiple identity columns specified for table 'KROP'. Only one identity column per table is allowed.
Maintenant, si vous utilisez PostgreSQL, il n’y a pas d’erreur, tout se passe bien, vous avez toute liberté pour auto-incrémenter à volonté, mais pourquoi fichtre, dire trente-six fois la même chose, quand une seule fois suffit ?
CREATE TABLE KROP
(
kropid serial
, kropid_bis serial
, kropid_ter serial
, kropid_quater serial
, nom varchar(16)
, salaire int not null
, CONSTRAINT KROP_PK PRIMARY KEY (kropid)
) ;
insert into KROP (nom, salaire) values ('krop', 100) ;
insert into KROP (nom, salaire) values ('griftou', 200) ;
insert into KROP (nom, salaire) values ('fsmrel', 100) ;
select * from KROP ;
=>
kropid kropid_bis kropid_ter kropid_quater nom salaire
------ ---------- ---------- ------------- ------- -------
1 1 1 1 krop 100
2 2 2 2 griftou 200
3 3 3 3 fsmrel 100
Partager