挿入トリガーのオーダーラインが機能しているテーブルがありますが、オーダー番号テーブルでは、シリアル番号に基づいてオーダー番号を更新したい
だから更新のために私は2行を書いた
1 行目: UPDATE TEMPSTORAGE SETORDERNUMBER =orderno+1,SERIALNUMBER=serialno;
は where 条件なしで正常に動作しています
2 行目: UPDATE ORDERNUMBER SETORDERNUMBER =orderno+1 WHERESERIALNUMBER= 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が機能しないのか教えてください。
よろしくお願いします。