Wie ändere ich die MySQL-Spaltendefinition?

156

Ich habe eine mySQL-Tabelle namens test:

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

Ich möchte die locationExpect-Spalte in Folgendes ändern:

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

Wie geht das schnell?

Maske
quelle

Antworten:

273

Meinen Sie damit, die Tabelle nach ihrer Erstellung zu ändern? In diesem Fall müssen Sie alter table verwenden , insbesondere:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

z.B

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);
mikej
quelle
5
Also ... MySQLWorkbench hat einen Syntaxprüfungsfehler, der diesen Befehl ablehnt. Aber es ist der richtige Befehl.
Steven Lu
Achtung: Im obigen Beispiel wird COLUMN auch in Null = Ja, Standard = Null geändert. Sie müssen unterschiedliche Werte angeben, wenn Sie Null nicht möchten.
Guy Gordon
@GuyGordon in der ursprünglichen Frage Mask wollte eine Spalte von NOT NULLNull auf Null ändern, daher denke ich, dass dieses Beispiel immer noch in Ordnung ist. Stimmen Sie zu, dass eine geringfügige Abweichung erforderlich wäre, wenn ein anderer Standard gewünscht würde.
Mikej
43

Syntax zum Ändern des Spaltennamens in MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Beispiel:

alter table test change LowSal Low_Sal integer(4);
Niranjan Vaddi
quelle
11

Dies sollte es tun:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Daniel Rikowski
quelle