Comment changer la définition de colonne MySQL?


156

J'ai une table mySQL appelée test:

create table test(
    locationExpect varchar(120) NOT NULL;
);

Je souhaite modifier la colonne locationExpect en:

create table test(
    locationExpect varchar(120);
);

Comment cela peut-il être fait rapidement?

Réponses:


273

Voulez-vous dire modifier la table après sa création? Si c'est le cas, vous devez utiliser alter table , en particulier:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

par exemple

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

5
Donc ... MySQLWorkbench a un bogue de vérification de syntaxe qui rejette cette commande. Mais c'est la bonne commande.
Steven Lu

Attention: l'exemple ci-dessus changera également COLUMN en Null = Yes, Default = Null. Vous devez spécifier des valeurs différentes si vous ne voulez pas Null.
Guy Gordon le

@GuyGordon dans la question d'origine Mask voulait changer une colonne de NOT NULLà autoriser les valeurs nulles donc je pense que cet exemple est toujours OK. Convenez qu'une légère variation serait nécessaire si une valeur par défaut différente était souhaitée.
mikej le

43

Syntaxe pour changer le nom de la colonne dans MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Exemple:

alter table test change LowSal Low_Sal integer(4);

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.