将列更改为可为空的查询不起作用[重复]

Posted

技术标签:

【中文标题】将列更改为可为空的查询不起作用[重复]【英文标题】:Query for altering column to be nullabe not working [duplicate] 【发布时间】:2019-09-17 10:12:54 【问题描述】:

我需要将名为 start_date_data_id 的列设为可为空。

我找到了这个答案 (Altering a column to be nullable) 并尝试按照描述的方式进行操作。

该列的说明: (| start_date_data_id| bigint(20)| NO | MUL | NULL | |)。

查询:

ALTER TABLE attenddb.company_group_user_settings
    ALTER COLUMN start_date_data_id bigint(20) NULL;

错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查 与您的 mysql 服务器版本相对应的手册 在第 1 行的“bigint(20) NULL”附近使用的语法

谁能告诉我为什么它不起作用?

【问题讨论】:

@Ronald Aaronson 我试过了,但发生了同样的错误。 您引用的问题中接受的答案是针对 ms sql server(它是这样说的)。如果您在答案中向下滚动一点,您也会找到 mysql 特定的答案。无论如何,在另一个仅针对 mysql 的问题中链接,以避免误解。 【参考方案1】:

试试这个:

ALTER TABLE attenddb.company_group_user_settings
MODIFY start_date_data_id bigint(20) NULL; 

【讨论】:

这行得通,谢谢。 如果这是解决方案,请接受它 我会的,但需要再等 5 分钟。 你的代码不工作的原因是因为你使用的是 SQL Server 语法,而 MySQL 使用了不同的语法。

以上是关于将列更改为可为空的查询不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将列更改为行[重复]

Postgresql以通用方式将列更改为行

如何在 PostgreSQL 11.1 中将现有列更改为身份

如何在 Rails 迁移中将可空列更改为不可空?

访问 SQL - 将列更改为自动编号?

如何将列更改为行