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?

Masque
la source

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);
Mikej
la source
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);
Niranjan Vaddi
la source
11

Cela devrait le faire:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Daniel Rikowski
la source