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?

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);

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);

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.