SQL Update语句语法

时间:2014-02-16 21:44:15

标签: mysql

我有两个表,我想使用SQL Update语句更新。这两个表包含一行名为“oak”和“exp”的行,它是我想要更新的值。到目前为止,我最好的猜测是:

'UPDATE `items_woods`, `skills_woodcutting` SET `oak`=`oak`+1, `exp`=`exp`+13 WHERE `id`=?'

但是,没有任何值保存在数据库中。提前谢谢。

更新:

if ($stmt = $mysqli->prepare('

        BEGIN TRANSACTION

        UPDATE items_woods
        SET items_woods.oak = ´1´
        FROM items_woods T1, skills_woodcutting T2
        WHERE T1.id = T2.id 
        and T1.id = ´?´

        UPDATE skills_woodcutting
        SET skills_woodcutting.exp = ´1´
        FROM items_woods T1, skills_woodcutting T2
        WHERE T1.id = T2.id
        and T1.id = ´?´

        COMMIT


        ')) {

2 个答案:

答案 0 :(得分:1)

SQL Update,一次只能更新一个表

使用具有两个更新语句的事务

答案 1 :(得分:0)

由于有两个表,您必须使用两个单独的语句更新它们。可以将这些事务作为单个事务,并且只有在两个事务都成功后才提交这两个事务。

我不确定您使用的数据库是什么,但一般方法是:

commit   (start the transaction)
update items_woods set oak = oak+1 where id = ?
update skills_woodcutting set exp=exp+13 where id = ?
commit   (complete the transaction)