mySQL用alter使列为空_关于sql:更改列为可为空

我想将表列更改为可为空。 我用过:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations NULL

这会在Modify处给出错误。 正确的语法是什么?

请以后发布错误消息

我已经删除了SQL Server标记,因为它看起来已成为所有人的免费通用标记。

假设SQL Server(基于您之前的问题):

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

将INT替换为您的实际数据类型。

是的,这对我有用。关注数据类型

对于Oracle数据库10g用户:

ALTER TABLE mytable MODIFY(mycolumn NULL);

否则,您会收到" ORA-01735:无效的ALTER TABLE选项"

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

太酷了,您不必指定数据类型,只需指定" null"即可使其成为可空值。

如果这是MySQL语法,则其他一些响应指出,该类型将丢失。

正确的MySQL语法为:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

在此处发布内容是为了使MySQL用户更加清晰。

在PostgresQL中,它是:

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;

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

这是一个正确的描述性答案,因此只需澄清一下Null | 未指定NOT NULL,该列将为空。

正如其他人所观察到的,该命令的确切语法在不同类型的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>

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT NULL;

这将为您工作。

如果要更改一个非空列以允许为空,则无需包含非空子句。因为默认列不为空。

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;

对于HSQLDB:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

在甲骨文

ALTER TABLE Merchant_Pending_Functions MODIFY(SQL_SCRIPT NOT NULL);

这个答案是否对@IgorSs答案带来了新的变化? SQL_SCRIPT代表什么?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值