【问题标题】:How to use reserved words without backquotes in MySQL如何在 MySQL 中使用不带反引号的保留字
【发布时间】:2012-10-30 18:33:20
【问题描述】:

我想在我的数据库中使用“user”或“right”等保留字作为表名或列名。到目前为止,我一直在使用反引号,但我在某处读到它们是特定于 MySQL 的,我想保持数据库兼容性。我还阅读了有关在 MySQL 中使用 ANSI 模式以避免使用反引号的信息,但我希望我的应用程序中的所有内容都是 UTF-8。

如何在不使用反引号或失去跨数据库兼容性的情况下使用保留字?

【问题讨论】:

  • 在 ANSI SQL 中,双引号用于此目的。它适用于 MySQL 吗?我不知道。
  • 好的,谢谢,但是如果我在其他地方使用 UTF-8,这会造成冲突吗?
  • 我建议更好的解决方案是不要使用这些词。当你忘记引用时,试图用保留词变得棘手总是会导致麻烦,更不用说让你的代码更难阅读了。
  • 我不知道你为什么认为 UTF-8 与此有关。
  • 好吧,我完全是一个关于字符编码的菜鸟,而且我在 Notepad++ 中看到您可以使用 UTF-8 和 ANSI 进行编码,所以我已经尝试使用 ANSI 和 UTF-8 都可以可能会在某个时候产生问题。

标签: mysql keyword quotes cross-database reserved


【解决方案1】:

MySQL 支持使用双引号包围标识符(例如表名和列名)的 ANSI 标准。您必须启用此选项,因为默认情况下 MySQL 将单引号和双引号都识别为封闭的字符串文字:

http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_ansi_quotes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2012-03-24
    • 2021-09-28
    • 2019-05-22
    • 1970-01-01
    • 2017-08-12
    • 2017-12-07
    相关资源
    最近更新 更多