首页 > 解决方案 > TABLE CREATE 上的奇怪 MYSQL 行为

问题描述

命令:

CREATE TABLE IRdata (ego int, altr VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

有效,但是

CREATE TABLE IRdata (ego int, alter VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

才不是。唯一的区别是第二列的“alter”中的“e”。

我在 Ubuntu 存储库上安装了最新的 MySQL,运行 Ubuntu 18.04。

任何帮助表示赞赏。

谢谢!

标签: mysql

解决方案


ALTER 是 MySQL 的保留关键字。建议您使用不映射到任何保留关键字的名称,否则您可能会遇到类似的错误。

如果您绝对必须使用该关键字作为字段名称,则可以将其包装在 `(反勾号)字符中:

CREATE TABLE IRdata (`ego` int, `alter` VARCHAR(20), `species` VARCHAR(20), `sex` CHAR(1), `birth` DATE, `death` DATE);

但无论如何都要避免。


推荐阅读