ฉันต้องการเปลี่ยนคอลัมน์ตารางให้เป็นโมฆะ ฉันเคยใช้:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Modify
นี้จะช่วยให้เกิดข้อผิดพลาดที่ ไวยากรณ์ที่ถูกต้องคืออะไร?
ฉันต้องการเปลี่ยนคอลัมน์ตารางให้เป็นโมฆะ ฉันเคยใช้:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Modify
นี้จะช่วยให้เกิดข้อผิดพลาดที่ ไวยากรณ์ที่ถูกต้องคืออะไร?
คำตอบ:
สมมติSQL Server
(ขึ้นอยู่กับคำถามก่อนหน้าของคุณ):
ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
แทนที่INT
ด้วยประเภทข้อมูลจริงของคุณ
สำหรับผู้ใช้ Oracle Database 10g:
alter table mytable modify(mycolumn null);
คุณได้รับ "ORA-01735: ตัวเลือก ALTER TABLE ไม่ถูกต้อง" เมื่อคุณลองใช้เป็นอย่างอื่น
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
หากนี่คือไวยากรณ์ของ MySQL ประเภทจะหายไปเนื่องจากคำตอบอื่น ๆ ชี้ให้เห็น ไวยากรณ์ MySQL ที่ถูกต้องน่าจะเป็น:
ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
โพสต์ที่นี่เพื่อความชัดเจนของผู้ใช้ MySQL
ใน PostgresQL มันคือ:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
แม้ว่าฉันจะไม่ทราบว่าคุณกำลังใช้ RDBMS อะไรอยู่คุณอาจต้องระบุข้อมูลคอลัมน์ทั้งหมดไม่ใช่แค่บอกว่าตอนนี้คุณต้องการให้เป็นโมฆะ ตัวอย่างเช่นถ้าเป็นปัจจุบันคุณควรออกINT NOT NULL
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
Null
| NOT NULL
ไม่ได้ระบุคอลัมน์จะเป็นโมฆะ
ดังที่คนอื่น ๆ สังเกตเห็นไวยากรณ์ที่แม่นยำสำหรับคำสั่งนั้นแตกต่างกันไปตามรสชาติต่าง ๆ ของ DBMS ไวยากรณ์ที่คุณใช้ทำงานได้ใน Oracle:
SQL> desc MACAddresses
Name Null? Type
----------------------------------------- -------- ----------------------------
COMPUTER NUMBER
MACADDRESS VARCHAR2(12)
CORRECTED_MACADDRESS NOT NULL VARCHAR2(17)
SQL> alter table MACAddresses
2 modify corrected_MACAddress null
3 /
Table altered.
SQL> desc MACAddresses
Name Null? Type
----------------------------------------- -------- ----------------------------
COMPUTER NUMBER
MACADDRESS VARCHAR2(12)
CORRECTED_MACADDRESS VARCHAR2(17)
SQL>
สำหรับ HSQLDB:
ALTER TABLE tableName ALTER COLUMN columnName SET NULL;
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;
สิ่งนี้จะได้ผลสำหรับคุณ
หากคุณต้องการเปลี่ยนคอลัมน์ที่ไม่ใช่นัลเพื่ออนุญาตให้เป็นโมฆะไม่จำเป็นต้องรวมคำสั่งที่ไม่เป็นโมฆะ เพราะคอลัมน์เริ่มต้นไม่เป็นโมฆะ
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;
ขึ้นอยู่กับว่าคุณใช้ SQL Engine อยู่ใน Sybase คำสั่งของคุณทำงานได้ดี:
ALTER TABLE Merchant_Pending_Functions
Modify NumberOfLocations NULL;
คำพยากรณ์
ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);