2013-01-13 30 views
-1

我有一个名为表与BOOKID,BOOKNAME,计数,定单计数Java的SQL简单的更新语法问题

我想编写一个SQL查询,将更新所有books.orderCount到books.orderCount + 1。

我该怎么做,使用executeQuery("UPDATE books....");? 我遇到了语法问题。

我试过在网上搜索信息,但大多数文章都是关于INSERT或DELETE命令的,而且唯一相关的文章建议将orderCount检索到Java,更新它然后将其写回SQL。如果可能的话我宁愿避免它,因为它可能会导致严重的问题(不需要的记录锁了这个任务,所以我不能使用它们,以避免问题)

+0

你应该使用'executeUpdate',而不是'executeQuery',因为它会返回一些关于更新行数“统计”。数据库驱动程序可能会进一步优化这种说法。 – home

回答

5

这应该是相当直接的,

UPDATE books 
SET orderCount = orderCount + 1 
+0

谢谢!不能相信我浪费了整整一个小时:) –

+0

不客气':D' –

0

如果它是一个primary key:

此外,你可以自动增量。

CREATE TABLE Persons 
(
P_Id int NOT NULL AUTO_INCREMENT, 
LastName varchar(255) NOT NULL, 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255), 
PRIMARY KEY (P_Id) 
) 

要让AUTO_INCREMENT序列开始与另一个值,可以使用下面的SQL语句:

ALTER TABLE Persons AUTO_INCREMENT=100 

要插入一个新的记录在“Persons”表中,我们不会有指定的值对于“P_Id”列(唯一值将被自动添加):

INSERT INTO Persons (FirstName,LastName) 
VALUES ('Lars','Monsen') 
+0

嗯,问题不在于更新主键... – home

+0

哦,是的,真的同意。它只适用于主键。试图在上面的答案中添加一些事情。将做出更新。 –

+0

NP,但它建议删除答案,因为它无助于解决OP问题。玩的开心。 – home