2023-10-11 10:00:11

将列更改为空

我想改变一个表列为空。我用过:

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

这将在修改处给出一个错误。正确的语法是什么?


当前回答

虽然我不知道您使用的是什么RDBMS,但您可能需要给出整个列规范,而不仅仅是说您现在希望它是可空的。例如,如果它当前是INT NOT NULL,你应该发出ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT。

其他回答

这取决于你使用的SQL引擎,在Sybase中你的命令可以正常工作:

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

对于HSQLDB:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

如果这是MySQL语法,类型就会丢失,就像其他一些响应指出的那样。 正确的MySQL语法应该是:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

为了让MySQL用户更清楚,我在这里发帖。

假设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;