78 votes

Table ALTER - ajout de AUTOINCREMENT dans MySQL

J'ai créé une table dans MySQL avec la colonne itemID . Après avoir créé la table, je souhaite maintenant changer cette colonne en AUTOINCREMENT . Comment cela peut-il être fait en utilisant les instructions ALTER?

Définition du tableau:

ALLITEMS (itemid int(10) unsigned, itemname varchar(50))

J'utilise le code suivant mais il génère une erreur: syntaxe incorrecte .

 ALTER TABLE allitems
MODIFY itemid INT(10) UNSIGNED AUTOINCREMENT; 
 

113voto

ThinkCode Points 2067
 CREATE TABLE ALLITEMS(
    itemid INT(10)UNSIGNED,
    itemname VARCHAR(50)
);

ALTER TABLE ALLITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY;

DESC ALLITEMS;

INSERT INTO ALLITEMS(itemname)
VALUES
    ('Apple'),
    ('Orange'),
    ('Banana');

SELECT
    *
FROM
    ALLITEMS;
 

J'avais été confondu avec les mots clés CHANGE et MODIFY auparavant:

 ALTER TABLE ALLITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY;

ALTER TABLE ALLITEMS MODIFY itemid INT(5);
 

Pendant que nous y sommes, notons également que AUTO_INCREMENT peut également commencer par un nombre prédéfini:

 ALTER TABLE tbl AUTO_INCREMENT = 100;
 

19voto

blejzz Points 1589

La syntaxe:

    ALTER TABLE `table1` CHANGE `itemId` `itemId` INT( 11 ) NOT NULL AUTO_INCREMENT 
 

Mais la table nécessite une clé définie (ex clé primaire sur itemId).

15voto

Vache Points 13219
ALTER TABLE `ALLITEMS`
    CHANGE COLUMN `itemid` `itemid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X