【问题标题】:MySQL INSERT INTO syntax [duplicate]MySQL INSERT INTO 语法 [重复]
【发布时间】:2012-07-27 11:31:53
【问题描述】:

我有以下结构

user_id int(11)
right   int(11)
group_id int(11)
value   tinyint(1)

还有 3 个查询

INSERT INTO  user_rights (`user_id`,`right`,`group_id`,`value`)
VALUES ( '42',  '160',  '1',  '1' );

INSERT INTO  user_rights ('user_id','right','group_id','value')
VALUES ( '42',  '160',  '1',  '1' );

INSERT INTO  user_rights (user_id,right,group_id,value)
VALUES ( '42',  '160',  '1',  '1' );

解释一下为什么只有第一个作品????

我一辈子都在用第三个!

【问题讨论】:

  • 第二个永远不应该工作......
  • 用“权限”这个词,就对了。

标签: mysql sql


【解决方案1】:

第二个也不起作用,因为 "Right" 是 mysql http://drupal.org/node/141051 的保留关键字,如果您想处理该查询,您必须使用 ` 表示正确

【讨论】:

    【解决方案2】:

    RIGHTmySQL reserved word。它只有在用反引号包裹时才有效。

    当您不使用保留字时,它也可以不使用反引号。

    第二种方式永远行不通,因为引号用于引用字符串,但从不用于引用数据库、表或列标识符。

    【讨论】:

    • 谢谢,但是......这是愚蠢的,为什么不'和`? ...没关系,谢谢
    • @Row 没问题。这种区别有充分的理由——一个是针对列和表名等对象,另一个是针对字符串。但我同意 mySQL 的错误消息在这方面有点神秘
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 2014-03-22
    • 2021-07-02
    • 1970-01-01
    相关资源
    最近更新 更多