【问题标题】:Why using no backticks in phpmyadmin sql returns "This table does not contain a unique column"?为什么在 phpmyadmin sql 中不使用反引号会返回“此表不包含唯一列”?
【发布时间】:2022-01-26 10:52:33
【问题描述】:

我有一个名为“22_structures”的表,主键为“id”。 在 phpmyadmin 中,如果我写(不带反引号):

SELECT id, adress FROM 22_structures;

phpmyadmin 说:

当前选择不包含唯一列

我无法编辑结果列表中的一行。然后,如果我写 sql 查询(带反引号):

SELECT id,adress FROM `22_structures`;

phpmyadmin 什么也没说,我可以很好地选择和编辑一行。

为什么?

表名的“22_”前缀有问题吗?

非常感谢。

【问题讨论】:

  • 至少在一般的ANSI标准SQL中,一个标识符是不允许以数字开头的。
  • 是的,有问题。标准表名以字母开头,而不是数字。但是,您可以通过将整个表名括在反引号中来以数字开头;如果这样做,则需要在使用表的任何地方都这样做。
  • 非常感谢你们两个 :-)

标签: sql phpmyadmin


【解决方案1】:

表名不允许以数字开头。因此需要反引号来转义这些名称。重命名我的所有表格回答了我的问题并解决了问题。

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多