2012-05-15 42 views
12

Ban đầu, bảng "MyTable" đã được xác định theo cách sau:bảng Alter SQL - cho phép giá trị cột NULL

CREATE TABLE IF NOT EXISTS `MyTable` (
    `Col1` smallint(6) NOT NULL AUTO_INCREMENT, 
    `Col2` smallint(6) DEFAULT NULL, 
    `Col3` varchar(20) NOT NULL, 
); 

Làm thế nào để cập nhật nó theo cách như vậy mà cột "Col 3" sẽ là được phép là NULL?

+0

Câu hỏi này đã được trả lời chưa? Nếu vậy đừng quên đánh dấu câu trả lời là đã được chấp nhận. – RyanfaeScotland

Trả lời

17

Câu lệnh MySQL sau sẽ sửa đổi cột của bạn để chấp nhận NULL.

ALTER TABLE `MyTable` 
ALTER COLUMN `Col3` varchar(20) DEFAULT NULL 
+0

Vâng, nhưng khi tôi chỉnh sửa cột Col 3 (Ngày), nó sẽ tự động nhận giá trị '0000-00-00'. Nhưng tôi muốn nó bằng NULL. –

+3

CẬP NHẬT BẢNG MyTable SET Col3 = null WHERE Col3 = '0000-00-00' – Tschareck

+2

Chờ ... không phải là Col3 a varchar (20), không phải Ngày? – Tschareck

17
ALTER TABLE MyTable MODIFY Col3 varchar(20) NULL; 
+0

Khi tôi chỉnh sửa cột (cố gắng để trống) trong MySQL Query Browser, thông báo lỗi sau xảy ra: Dữ liệu cắt ngắn cho cột 'Col 3' ở hàng 1. Nó xảy ra sau khi cập nhật của bạn. –

+0

nếu tôi thử ALTER TABLE spen_recipe MODIFY Null varchar (20) NULL; tôi bị lỗi –

+0

@SachinS: 'Null' đầu tiên làm gì ở đó? – eggyal

Các vấn đề liên quan