ฉันสามารถเปลี่ยนคอลัมน์จาก NOT NULL เป็น NULL โดยไม่ทิ้งได้หรือไม่


101

ต้องการแก้ไขตารางเพื่อให้มีค่าว่างในคอลัมน์ - แต่ไม่สามารถวางคอลัมน์ได้ ... ฉันสามารถทำได้หรือไม่? กำลังลองสิ่งที่ชอบ:

ALTER TABLE myTable MODIFY myColumn NULL;

แต่เปล่าประโยชน์ ....

คำตอบ:


206
ALTER TABLE myTable ALTER COLUMN myColumn {DataType} NULL

{DataType}ชนิดข้อมูลปัจจุบันของคอลัมน์นั้นอยู่ที่ไหน(ตัวอย่างเช่นintหรือvarchar(10))


52

แน่นอนว่าคุณทำได้

ALTER TABLE myTable ALTER COLUMN myColumn int NULL

เพียงแค่แทนที่ int สำหรับประเภทข้อมูลที่คอลัมน์ของคุณเป็น


1
คำตอบของคุณเป็นจริง แต่ไม่ได้รับการยอมรับว่าเป็นคำตอบที่ดีที่สุด พจ ทำให้เกิดสิ่งนี้ (ALTER TABLE myTable ALTER COLUMN myColumn {DataType} NULL) ไม่ทำงาน
UfukSURMEN

1
ฉันลองalter columnแล้วและมันใช้ไม่ได้กับเซิร์ฟเวอร์ mysql ล่าสุด ฉันลองmodify columnแล้วมันได้ผล Strange ...
Kostas Andrianos

1
@UfukSURMEN {DataType} หมายความว่าคุณควรใส่ประเภทข้อมูลของคุณแทนค่านั้น คำตอบก็เหมือนกันมาร์คเพิ่งอธิบายตัวเองมากขึ้น (ซึ่งน่าจะทำให้เขาได้รับคำตอบที่ยอมรับ แต่นั่นไม่ใช่สายของฉัน)
PrinceTyke

@PrinceTyke แน่นอน
UfukSURMEN

-1

สำหรับ MYSQL

ALTER TABLE myTable MODIFY myColumn {DataType} NULL

2
ไม่ทราบว่าทำไมคำตอบนี้จึงถูกลดระดับลงชื่อคอลัมน์ MODIFY ใช้ได้กับ mySql แต่ไม่เปลี่ยนชื่อคอลัมน์
Venkat

1
@Venkat ฉันคิดว่าเพราะคำถามถูกแท็ก sql-server
orangecaterpillar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.