larrybg:
私は、ノードJSアプリを書いて実行する必要があるんだUPDATE
とDELETE
、同じ文でクエリが、DELETE
別のテーブルにのみ条件が一定の状態に等しい場合に実行されなければなりません。私は私のシンテックスについてはよく分からない...ここでは、これまで私が持っているものです。
UPDATE vm_log SET user_id_fk = (SELECT user_id FROM users WHERE username = ?), vm_state = ? WHERE vm_id = ?;
SET @vmState = ?;
IF @vmState = 'PERMANENT' THEN
DELETE FROM vm_ext_tracking WHERE vm_fk = ?;
END IF
どこ?
PARAMATERSとして供給されています。たとえばusername = 'someUser'
、vm_state = 'ACTIVE'
またはPERMANENT
、およびいくつかの番号をvm_id: vm_id = 4303
。UPDATE
一部には、別途罰金と複雑さの層を追加するだけで必要に動作しますDELETE
。私は、エラーメッセージ:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF @vmState = 'PERMANENT' THEN
DELETE FROM vm_ext_tracking WHERE vm_fk = 4303' at line 1
明菜:
UPDATE vm_log
SET user_id_fk = ( SELECT user_id
FROM users
WHERE username = ?),
vm_state = ?
WHERE vm_id = ?;
SET @vmState = ?;
DELETE
FROM vm_ext_tracking
WHERE vm_fk = ?
AND @vmState = 'PERMANENT';
PS。@vmState
あなたが使用することができ、以下の(図示せず)のコードでそれに必要がない場合は、過剰です
UPDATE vm_log
SET user_id_fk = ( SELECT user_id
FROM users
WHERE username = ?),
vm_state = ?
WHERE vm_id = ?;
DELETE
FROM vm_ext_tracking
WHERE ? = 'PERMANENT'
AND vm_fk = ?;