【问题标题】:How do I insert brackets into a column name of my SQL table?如何在我的 SQL 表的列名中插入括号?
【发布时间】:2017-12-23 08:54:31
【问题描述】:

我目前正在尝试在表格的列名中插入方括号。但是,当我运行我的脚本时,这会导致错误。

我的脚本中表格的格式之前为:

cursor.execute("CREATE TABLE IF NOT EXISTS table (date date, voltage decimal (2,2))")

然后我对脚本的这一部分进行了更改,以在我的表列名称中添加括号。现在是这样的:

cursor.execute("CREATE TABLE IF NOT EXISTS table (date date, voltage(V) decimal (2,2))")

添加括号即(V)后,脚本无法运行。

我得到的错误是: SQL 语法;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“(V)十进制(2,2))附近使用正确的语法

如何在列名中添加方括号而不报错?

【问题讨论】:

  • 尝试将电压(V)放在单引号中
  • 只是:不要那样做
  • 你为什么要让试图通过 sql 使用你的表的每个人的生活变得复杂?它是一个数据存储,它不应该以它的名字来保存这样的东西——这就是你在表示层上所做的。 voltage 是一个完美的名字 - 添加 (V) 不会限制任何人做任何事情,只会让每个人的生活变得复杂 - 包括你的生活。

标签: mysql mariadb brackets columnname


【解决方案1】:

如果您想在数据库、表或列的名称中使用特殊字符,请将名称放在反引号中。

CREATE TABLE IF NOT EXISTS table (
    date date, 
    `voltage(V)` decimal (2,2)
)

您还需要在引用该列的所有查询中使用反引号,因此它可能会惹恼所有其他程序员。

有关在 MySQL 中引用的更多信息,请参阅 When to use single quotes, double quotes, and backticks in MySQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多