我想改变一个表列为空。我用过:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
这将在修改处给出一个错误。正确的语法是什么?
我想改变一个表列为空。我用过:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
这将在修改处给出一个错误。正确的语法是什么?
当前回答
假设SQL Server(基于你之前的问题):
ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
将INT替换为实际的数据类型。
其他回答
Oracle数据库10g用户:
alter table mytable modify(mycolumn null);
当您尝试其他方法时,您将得到“ORA-01735: invalid ALTER TABLE选项”
ALTER TABLE mytable ALTER COLUMN mycolumn DROP 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>
虽然我不知道您使用的是什么RDBMS,但您可能需要给出整个列规范,而不仅仅是说您现在希望它是可空的。例如,如果它当前是INT NOT NULL,你应该发出ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT。
在PostgresQL中是:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
适用于SQL Server或TSQL
ALTER TABLE Complaint.HelplineReturn ALTER COLUMN IsDisposed BIT NULL