为什么我可以创建名为"key"和"value"的表列,但我以后不能使用它们?

Mah*_*hdi 3 mysql sql database database-design

每日提示:backticks像老板一样使用!即使在你的笔迹!

更新:如果您采纳上述建议,则无需再阅读以下内容!认真!

问题: 我对此有点恼火.我可以创建一个包含其命名列的表keyvalue,但是当我想用这些列工作,我会看到一个非常漂亮的语法错误并解释说这些都是reserved keywords为MySQL.

我的问题是:有人知道为什么会这样吗?为什么我首先没有收到语法错误?是否有任何理由支持?

Joh*_*Woo 8

只是KEY保留关键字:D.

只需KEY用反引号包装列名,以便您可以使用它,例如

SELECT `key`
FROM   tableName
Run Code Online (Sandbox Code Playgroud)

或者为表提供别名,

SELECT a.key
FROM   tableName a
Run Code Online (Sandbox Code Playgroud)

  • 是的!如果您花了 3 个小时调试世界上最简单的更新查询却没有任何成功,那么之后您会很高兴在任何地方使用反引号! (2认同)