ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
这会在
Modify
处给出错误。正确的语法是什么?#1 楼
假设SQL Server
(根据您之前的问题):ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
用实际的数据类型替换
INT
。#2 楼
如果这是MySQL语法,则该类型将丢失,如其他一些响应指出的那样。正确的MySQL语法将是:为了使MySQL用户更加清晰。
#3 楼
对于Oracle数据库10g用户:alter table mytable modify(mycolumn null);
否则尝试时得到“ ORA-01735:无效的ALTER TABLE选项”
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
评论
太酷了,您不必指定数据类型,只需将其设置为“ null”即可将其设置为可为空。
–Gabe Halsmer
2014年7月8日在22:37
#4 楼
在PostgresQL中为:ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
#5 楼
尽管我不知道您使用的是什么RDBMS,但您可能需要给出整个列的说明,而不仅仅是说您现在希望它可以为空。例如,如果当前为INT NOT NULL
,则应发出ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
。评论
这是一个正确的描述性答案,因此只需澄清一下是否为空|未指定NOT NULL,则该列可以为空。
–Hamid Heydarian
17年8月11日在6:41
#6 楼
正如其他人所观察到的,该命令的确切语法在不同类型的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>
#7 楼
对于HSQLDB:ALTER TABLE tableName ALTER COLUMN columnName SET NULL;
#8 楼
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;
这将为您工作。
如果要更改not null列以允许null,则无需包含not null子句。因为默认列不为空。
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;
#9 楼
这取决于您使用的是哪种SQL Engine,在Sybase中,您的命令是否可以正常运行:ALTER TABLE Merchant_Pending_Functions
Modify NumberOfLocations NULL;
#10 楼
OracleALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);
评论
对于@IgorS的答案,此答案是否带来任何新的东西? SQL_SCRIPT代表什么?
– jpeg
19年5月29日在14:05
评论
请以后发布错误消息我已删除了SQL Server标记,因为它看起来已成为所有人的免费通用软件。