Come modificare la definizione della colonna MySQL?


156

Ho una tabella mySQL chiamata test:

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

Voglio cambiare la colonna locationExpect in:

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

Come può essere fatto rapidamente?

Risposte:


273

Intendi cambiare la tabella dopo che è stata creata? In tal caso è necessario utilizzare alter table , in particolare:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

per esempio

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

5
Quindi ... MySQLWorkbench ha un bug per il controllo della sintassi che rifiuta questo comando. Ma è il comando giusto.
Steven Lu,

Attenzione: l'esempio sopra cambierà anche COLUMN in Null = Sì, Default = Null. È necessario specificare valori diversi se non si desidera Null.
Guy Gordon,

@GuyGordon nella domanda originale Mask ha voluto cambiare una colonna da NOT NULLper consentire null, quindi penso che questo esempio sia ancora OK. Concordo sul fatto che sarebbe necessaria una leggera variazione se si desiderasse un default diverso.
Mike

43

Sintassi per cambiare il nome della colonna in MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Esempio:

alter table test change LowSal Low_Sal integer(4);

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.