Bagaimana cara mengubah definisi kolom MySQL?

156

Saya memiliki tabel mySQL yang disebut tes:

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

Saya ingin mengubah kolom locationExpect menjadi:

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

Bagaimana itu bisa dilakukan dengan cepat?

Topeng
sumber

Jawaban:

273

Apakah maksud Anda mengubah tabel setelah dibuat? Jika demikian, Anda perlu menggunakan tabel alter , khususnya:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

misalnya

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);
mikej
sumber
5
Jadi ... MySQLWorkbench memiliki bug pemeriksaan sintaks yang menolak perintah ini. Tapi, itu perintah yang tepat.
Steven Lu
Hati-hati: Contoh di atas juga akan mengubah COLUMN menjadi Null = Ya, Default = Null. Anda perlu menentukan nilai yang berbeda jika Anda tidak ingin Null.
Guy Gordon
@GuyGordon dalam Mask pertanyaan asli ingin mengubah kolom dari yang NOT NULLmemungkinkan nol jadi saya pikir contoh ini masih OK. Setuju bahwa sedikit variasi akan diperlukan jika standar yang berbeda diinginkan.
mikej
43

Sintaks untuk mengubah nama kolom di MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Contoh:

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

Ini harus dilakukan:

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