mysql - 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。
任何帮助表示赞赏。
谢谢!
解决方案
ALTER 是 MySQL 的保留关键字。建议您使用不映射到任何保留关键字的名称,否则您可能会遇到类似的错误。
如果您绝对必须使用该关键字作为字段名称,则可以将其包装在 `(反勾号)字符中:
CREATE TABLE IRdata (`ego` int, `alter` VARCHAR(20), `species` VARCHAR(20), `sex` CHAR(1), `birth` DATE, `death` DATE);
但无论如何都要避免。
推荐阅读
- c# - EF Core 2.2 执行 SQL 存储过程在 SQL Server 管理中成功执行时超时
- php - 每个单个产品页面 woocommerce 的不同自定义数量
- java - 如何重构此方法以将其认知复杂性从 21 降低到允许的 15?
- django - django Postgres ArrayField 保留列表插入排序
- javascript - 使用jQuery将鼠标悬停转换为滚动
- asp.net-core - 根据 Razor Pages 中的路由有条件地渲染 html
- hdf5 - HDF5 中传感器信号的最佳结构是什么?
- python - 如何在python中复制目录?
- javascript - 具有开窗功能的 LinkedIn 个人资料徽章
- sql - LinqToSql OrderBy 没有效果