将列更改为空
我想将表列更改为可空。我曾使用过:将列更改为空
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
这给出了一个错误Modify
。什么是正确的语法?
假设SQL Server
(根据你以前的问题):
ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
替换INT
您的实际数据类型。
尽管我不知道您使用的是什么RDBMS,但您可能需要提供整个列规范,而不只是说您现在希望它可以为空。例如,如果它目前是INT NOT NULL
,则应该发出ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
。
这是一个正确的和描述性的答案,所以只需澄清'Null' | NOT NULL没有被指定,该列将是可空的。 – 2017-08-11 06:41:14
正如其他人所观察到的,该命令的精确语法随着不同风格的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数据库10g的用户:
alter table mytable modify(mycolumn null);
你得到 “ORA-01735:无效的ALTER TABLE选项” 当您尝试以其他方式
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
很酷,您不必指定数据类型,只需“null”即可为空。 – 2014-07-08 22:37:52
如果这是MySQL语法,那么类型将会丢失,正如其他一些响应指出的那样。 正确的MySQL语法本来:
ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
在这里发帖的清晰度MySQL用户。
在PostgreSQL是:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
请后我已经删除了SQL Server的标签在未来 – 2010-08-24 13:58:27
错误消息,因为它看起来像这已经成为一种普遍的全部免费。 – 2016-03-06 14:13:31