我想改变一个表列为空。我用过:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
这将在修改处给出一个错误。正确的语法是什么?
我想改变一个表列为空。我用过:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
这将在修改处给出一个错误。正确的语法是什么?
当前回答
如果这是MySQL语法,类型就会丢失,就像其他一些响应指出的那样。 正确的MySQL语法应该是:
ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
为了让MySQL用户更清楚,我在这里发帖。
其他回答
甲骨文
修改表([column] NOT NULL)
SQLite
ALTER TABLE命令有点特殊。不可能修改列。你必须创建一个新列,迁移数据,然后删除该列:
-- 1. First rename
ALTER TABLE
Merchant_Pending_Functions
RENAME COLUMN
NumberOfLocations
TO
NumberOfLocations_old
-- 2. Create new column
ALTER TABLE
Merchant_Pending_Functions
ADD COLUMN
NumberOfLocations INT NULL
-- 3. Migrate data - you need to write code for that
-- 4. Drop the old column
ALTER TABLE
Merchant_Pending_Functions
DROP COLUMN
NumberOfLocations_old
假设SQL Server(基于你之前的问题):
ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
将INT替换为实际的数据类型。
在PostgresQL中是:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
虽然我不知道您使用的是什么RDBMS,但您可能需要给出整个列规范,而不仅仅是说您现在希望它是可空的。例如,如果它当前是INT NOT NULL,你应该发出ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT。