[mySQL] ALTER TABLE mal foutu ou c moi ?...

ALTER TABLE mal foutu ou c moi ?... [mySQL] - SQL/NoSQL - Programmation

Marsh Posté le 10-09-2002 à 17:10:13    

Bonjour,
Prenons une table toute simple "test" :

+---------+---------------+------+-----+---------+----------------+
| Field   | Type          | Null | Key | Default | Extra          |
+---------+---------------+------+-----+---------+----------------+
| id      | int(10)       |      | PRI | NULL    | auto_increment |
| texte   | varchar(255)  | YES  |     | NULL    |                |
+---------+---------------+------+-----+---------+----------------+


Mettons que je souhaite modifier mon champ en un tinyint, je lance donc la commande :

ALTER TABLE test MODIFY COLUMN id tinyint(3) unsigned NOT NULL default NULL auto_increment PRIMARY KEY;


et là j'obtiens la magnifique erreur :

ERROR 1068: Multiple primary key defined


Evidemment si j'enlève le PRIMARY KEY, il ne se met pas à brailler... Le pb c'est que c'est un programme automatique qui lance les ALTER TABLE donc ça m'arrangerai de garder le PRIMARY KEY.
Ceci a été testé sur un MySQL 4.0.2 ainsi que 3.23.51. C'est donc une limite du ALTER ? c moi qui m'y prend mal ? c'est MySQL qui fait n'importe quoi, etc... ? ;) Je sais qu'il y a certains utilisateurs émérites de MySQL ici (joce...) donc si je pouvais avoir une réponse ! Merci !

Reply

Marsh Posté le 10-09-2002 à 17:10:13   

Reply

Marsh Posté le 11-09-2002 à 13:10:30    

Poulou a écrit a écrit :

ALTER TABLE test MODIFY COLUMN id tinyint(3) unsigned NOT NULL default NULL auto_increment PRIMARY KEY;



 
Déjà là il y a contradiction. 'DEFAULT NULL' à virer.
Pour le problème de clé primaire si c'est pour changer il faut d'abord éjecter la précédente:

ALTER TABLE test DROP PRIMARY KEY;


Message édité par Krueger le 11-09-2002 à 13:12:37

---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 11-09-2002 à 14:29:54    

Effectivement, j'avais pas fait gaffe au "NOT NULL default NULL"... Va falloir que je modifie le prog pour ça !
Pour la clé primaire, c'es quand même étrange qu'il nous dise qu'il y a une double clé primaire alors qu'on ne la touche pas au final vu que c sur le même champ.
J'ai testé le ALTER TABLE test DROP PRIMARY KEY et j'ai droit à l'erreur :  

ERROR 1075: Incorrect table definition; There can only be one auto column and it must be defined as key


Donc pas possible d'enlever la clé primaire et pas possible de modifier le champ en indiquant PRIMARY KEY. Pas très bien foutu tout ça !...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed