我想将一个表中的列更改为可为空。我使用了:
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
替换为您实际使用的数据类型。
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
如果这是MySQL语法,那么类型会被省略,正如其他回答中指出的那样。 正确的MySQL语法应该是:
ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
为了让MySQL用户更加清晰,我在此发布。
适用于 Oracle 数据库 10g 用户:
alter table mytable modify(mycolumn null);
如果您尝试其他方法,则会收到“ORA-01735:无效的ALTER TABLE选项”错误。
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
适用于SQL Server或TSQL
ALTER TABLE Complaint.HelplineReturn ALTER COLUMN IsDisposed BIT NULL
INT NOT NULL
,则应发出 ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
命令。Null
| NOT NULL
,则该列将可为空。 - Hamid Heydarian正如其他人所观察到的那样,该命令的语法因不同类型的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>
Oracle
修改表 Merchant_Pending_Functions,将 [column] 设置为非空。
ALTER TABLE Merchant_Pending_Functions
Modify NumberOfLocations NULL;
对于HSQLDB:
ALTER TABLE tableName ALTER COLUMN columnName SET NULL;