TABLE CREATE上奇怪的MYSQL行为

时间:2019-02-20 19:21:27

标签: 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);

没有。唯一的区别是第二列的“更改”中的“ e”。

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

感谢您的帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

如果您绝对必须使用该关键字作为字段名,则可以将其用`(反引号)字符括起来:

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

但无论哪种方式都要避免。