Làm thế nào để thay đổi định nghĩa cột MySQL?


156

Tôi có một bảng myQuery gọi là test:

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

Tôi muốn thay đổi cột locationExpect thành:

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

Làm thế nào nó có thể được thực hiện nhanh chóng?

Câu trả lời:


273

Bạn có nghĩa là thay đổi bảng sau khi nó đã được tạo ra? Nếu vậy, bạn cần sử dụng bảng thay đổi , cụ thể:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

ví dụ

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

5
Vì vậy, ... MySQLWorkbench có lỗi kiểm tra cú pháp từ chối lệnh này. Nhưng, đó là mệnh lệnh đúng.
Steven Lu

Chú ý: Ví dụ trên cũng sẽ thay đổi COLUMN thành Null = Yes, Default = Null. Bạn cần chỉ định các giá trị khác nhau nếu bạn không muốn Null.
Guy Gordon

@GuyGordon trong câu hỏi ban đầu Mặt nạ muốn thay đổi một cột từ NOT NULLsang cho phép null nên tôi nghĩ ví dụ này vẫn ổn. Đồng ý rằng mặc dù sẽ cần một biến thể nhỏ nếu muốn có một mặc định khác.
mikej

43

Cú pháp thay đổi tên cột trong MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Thí dụ:

alter table test change LowSal Low_Sal integer(4);

11

Điều này nên làm điều đó:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.