【问题标题】:need to alter column type to NOT NULL AUTO_INCREAMENT using ALTER COLUMN in MySQL需要在 MySQL 中使用 ALTER COLUMN 将列类型更改为 NOT NULL AUTO_INCREAMENT
【发布时间】:2020-12-11 15:06:17
【问题描述】:

我想将当前类型为 INTEGER 但具有 NULL 值的列“ID”更改为 INTEGER NOT NULL AUTO_INCREMENT 类型。但我收到错误。我的SQL语法如下。

ALTER TABLE users
ALTER COLUMN ID INTEGER NOT NULL AUTO_INCREMENT;

上面的代码给了我语法错误。

然后我尝试了,

ALTER TABLE users
ALTER COLUMN ID INTEGER NOT NULL;

这也给了我类似的语法错误

1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 2 行的“INTEGER NOT NULL”附近使用正确的语法

【问题讨论】:

  • 请阅读参考手册。有 ALTER COLUMN、CHANGE COLUMN 和 MODIFY COLUMN,每个都执行自己的操作。而且您不需要指定 NOT NULL - AUTO_INCREMENT 必须是主键,其表达式中提到的所有列都自动设置为 NOT NULL。

标签: mysql mariadb


【解决方案1】:

使用MODIFY COLUMN:

ALTER TABLE users
MODIFY COLUMN ID INTEGER NOT NULL AUTO_INCREMENT;

还有一个 ALTER COLUMN 类型的命令,但它仅用于指定列的 DEFAULT。示例请参考https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

【讨论】:

  • 谢谢,它对我有用,我也将列设为主键。
猜你喜欢
  • 2013-11-02
  • 2014-04-17
  • 2015-08-26
  • 2013-02-26
  • 2013-12-26
  • 2017-09-21
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多