挿入トリガーのオーダーラインが機能しているテーブルがありますが、オーダー番号テーブルでは、シリアル番号に基づいてオーダー番号を更新したい
だから更新のために私は2行を書いた
1 行目: UPDATE TEMPSTORAGE SET
ORDERNUMBER =orderno+1,
SERIALNUMBER=serialno;
は where 条件なしで正常に動作しています
2 行目: UPDATE ORDERNUMBER SET
ORDERNUMBER =orderno+1 WHERE
SERIALNUMBER= serialno;
が機能していません。どなたか提案していただけないでしょうか。シリアル番号に基づいて ordernumber を更新する方法
DELIMITER $$
USE `temp`$$
DROP TRIGGER /*!50032 IF EXISTS */ `trg_updateordernumber`$$
CREATE TRIGGER `trg_updateordernumber` AFTER INSERT ON `ORDERLINES`
FOR EACH ROW BEGIN
DECLARE orderno VARCHAR(255);
DECLARE serialno VARCHAR(255);
SET @orderno = 'xxx';
SELECT ORDERNUMBER, SERIALNUMBER INTO orderno, serialno
FROM ORDERLINES
WHERE ID=NEW.ID;
UPDATE TEMPSTORAGE SET
`ORDERNUMBER` =orderno+1,
`SERIALNUMBER` =serialno;
UPDATE ORDERNUMBER SET
`ORDERNUMBER`=orderno+1
WHERE `SERIALNUMBER` = serialno;
END;
$$
DELIMITER ;
mysql トリガーに問題はありますか (ないことを願っています)...? そうでない場合は、なぜline2が機能しないのか教えてください。
よろしくお願いします。