2010-02-06 181 views
0

我似乎在这个INSERT查询中的某个地方出错了。有人可以告诉我如何使这项工作?这个SQL查询有什么问题?

谢谢。

INSERT INTO tablename ('score', 'coins-earned', 'bonus-used', 'topmultiplier', 'highscore', 'currentposition', 'super', 'star', 'color') 
VALUES ('1', '2', 'TRUE', '3', 'TRUE', '4', '5', '6', '7') 
+8

有什么错误? – TFD 2010-02-06 08:42:54

+3

什么版本的SQL? – egrunin 2010-02-06 08:49:45

回答

7

你把引号中的列名,和连字符可能是列名无效。在MS SQL中,这是有效的:

INSERT INTO tablename (score, [coins-earned], [bonus-used], 
    topmultiplier, highscore, currentposition, super, star, color) 
VALUES ('1', '2', 'TRUE', '3', 'TRUE', '4', '5', '6', '7') 

这也假定所有列都是char或varchar,它们可能不是。数字和布尔列不愿意报价或者,因此有可能到头来你会像这样的东西:

INSERT INTO tablename (score, [coins-earned], [bonus-used], 
    topmultiplier, highscore, currentposition, super, star, color) 
VALUES (1, 2, TRUE, 3, TRUE, 4, '5', '6', '7') 
0

然后语法本身就没问题。

请添加表格描述,关于要放入表格的值必须存在错误(可能是数字,而您想插入“TRUE”)。

1

请提供表格结构。

我猜'分数'是数字,你试图插入一个字符串,许多其他列的情况也是如此。

0

我猜这些数字是表格设计中的数字值,所以你不需要'' - 如果“bonus-used”列是一个bit/bool列,使用1/0而不是'true'

所以

值(1,2,1,3,1,4,5,6,7)

0

尝试从列名替换单引号:

INSERT INTO tablename 
    (`score`, `coins-earned`, `bonus-used`, `topmultiplier`, 
    `highscore`, `currentposition`, `super`, `star`, `color`) 
VALUES ('1', '2', 'TRUE', '3', 'TRUE', '4', '5', '6', '7')