【问题标题】:unable to change MySQL column to have the NOT NULL constraint [closed]无法将 MySQL 列更改为具有 NOT NULL 约束
【发布时间】:2013-06-12 19:13:57
【问题描述】:

我正在尝试使用以下方法更改我的 MySQL 数据库中的一堆列以具有 NOT NULL 约束:

mysql> ALTER TABLE Jobs CHANGE Date_to_Run Date_to_Run NOT NULL;

我认为这就是您进行此类更改的方式,但它给了我一个语法错误。
关于我做错了什么有什么想法吗?

编辑:这是错误

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

【问题讨论】:

  • 你能发布错误吗?

标签: mysql syntax alter


【解决方案1】:

这就是问题所在:

ALTER TABLE Jobs CHANGE Date_to_Run Date_to_Run NOT NULL;
                                    ^^^^^^^^^^^ need to specify the data type
                 ^^^^^ it's MODIFY, not CHANGE

试试这个:

ALTER TABLE Jobs MODIFY Date_to_Run DATE NOT NULL;

我假设它的类型是 DATE - 如果不只是输入实际类型而不是 DATE,那么在其后面加上 NOT NULL。

ALTER TABLE 文档是 here

【讨论】:

  • 做到了,谢谢你的帮助:)
  • 顺便说一句,MySQL 中是否有命令使表中的每一列都具有 NOT NULL 约束?
  • 我不知道。我 99% 确定您必须一次修改一个。
【解决方案2】:

语法是这样的: ALTER TABLE 表名 MODIFY column_name 数据类型不为空

你可以在这个网站上看到它: http://www.w3schools.com/sql/sql_alter.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 2021-04-21
    • 2018-01-12
    • 2018-03-25
    相关资源
    最近更新 更多