2015-04-29 31 views
1

我在这个查询的问题:此INSERT MAX + 1查询有什么问题?

INSERT INTO invoices(invuid, linenumber) VALUES (?, SELECT(SELECT max(linenumber)+1 FROM invoices WHERE invuid=?))

口口声声说:"General error: 1093 You can't specify target table 'invoices' for update"

回答

1

你的语法是无效的,可以使用INSERT INTO ... SELECT和删除values部分是这样的:

INSERT INTO invoices(invuid, linenumber) 
SELECT ?, max(linenumber)+1 FROM invoices WHERE invuid=?