MySQL INSERT INTO语法

时间:2012-07-29 15:59:15

标签: mysql sql sql-server mysqli

我有以下结构

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' );

解释我为什么只有第一个有效????

我一生都在使用第三个!

感谢。

2 个答案:

答案 0 :(得分:13)

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

当你不使用保留字时,它也可以在没有反引号的情况下工作。

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

答案 1 :(得分:0)

第二个也不会起作用,因为“Right”是mysql http://drupal.org/node/141051的保留关键字,如果你想要使用`for right

的那个查询也不行