【问题标题】:Can we have the table name as "option" in MySQL?我们可以在 MySQL 中将表名作为“选项”吗?
【发布时间】:2008-11-29 17:38:35
【问题描述】:

我对 MYSQL 非常非常陌生。我尝试创建一个名为“option”的表。 我的 SQL 查询是:

创建表选项(

id int not null 主键 auto_increment,

选择 varchar(30)

)

执行此查询时显示以下错误

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'option( id int not null 主键 auto_increment, 选择 varchar(30) )' 在第 1 行 (0 毫秒)

如果我尝试将表名作为“选择”,它会起作用。

我们可以在mysql中将表名作为“选项”吗?

谢谢

【问题讨论】:

  • 根据我的回答,虽然可以,但您希望让您的应用程序/数据库有一个良好的开端。单字“选项”真的是这个表的最佳名称吗?它必须是针对特定事物的选项,因此如果您还没有绘制数据模型,请花一些时间绘制数据模型,问题应该会自行解决。

标签: sql mysql database


【解决方案1】:

如果你想有一个表名选项,你应该可以,只要记住,每当你在查询中使用表时,你必须用`符号把它包起来。像这样。

`option`

键盘左上角的 ` 键,带有波浪号。

【讨论】:

  • 它在我键盘的左下角!
【解决方案2】:

选择一个不同的名称(一个不是您的 RDBMS 中的保留字的名称),让您自己和其他可能使用它的人免去很多麻烦。

【讨论】:

  • 虽然引用似乎无害,但我一直被具有名为“All”和“Table”以及其他保留字的表的系统所困扰,并且开始鄙视反引号/括号。
【解决方案3】:

option是Mysql中的保留字。我们可以通过单引号内的单词来使用保留字。

【讨论】:

    【解决方案4】:

    最好选择另一个表名。否则维护我们的代码会很困难。

    【讨论】:

      【解决方案5】:

      如果您使用反引号将 SQL 关键字转义,则可以将 SQL 关键字用作 MySQL 中的表名。

       CREATE TABLE `option` (
           ...
       )
      

      不过,这样做通常不是一个好主意。

      【讨论】:

        【解决方案6】:

        option 是 MySQL 中的 reserved word。为自己省去一个痛苦的世界,并使用 choice 作为您的表名。

        【讨论】:

          【解决方案7】:

          请参阅MySQL documentation。你可以这样做:

          create table `option` (
          ...
          )
          

          【讨论】:

            【解决方案8】:

            是的,您绝对可以创建一个名为 option 的表,但在每个查询中您都必须使用

            `option`
            

            而不是普通的option。最好即兴发挥一点,并创建一个名为 options 的表来避免麻烦。禁止使用mysql保留字作为表名或列名或过程名。

            【讨论】:

              猜你喜欢
              • 2022-07-26
              • 2011-06-02
              • 2023-03-24
              • 1970-01-01
              • 1970-01-01
              • 2016-04-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多