私はMySQLクエリを書こうとしています。 select関数のWITH節に何らかのエラーが発生しています。MySQLトリガで "WITH"句を使用するには?
これはサンプルクエリです:
CREATE TRIGGER SAMPLE BEFORE INSERT ON SERVER
FOR EACH ROW
BEGIN
IF ((SELECT COUNT(S.ID) FROM SERVER S WITH UR) >= (SELECT L.SERVERS FROM SAMPLE L WHERE L.ID = 1 LIMIT 1)) THEN
SIGNAL SQLSTATE '73550' SET MESSAGE_TEXT='+ID';
END IF;
END;
と私はエラーを取得しています:
right syntax to use near 'UR) >= (SELECT L.SERVERS FROM SAMPLE L WHERE L.ID = 1 LIMIT 1))
は、WITH句ですがMySQLでサポートしていませんか?または、他の構文を使用する必要がありますか?どんな提案も役に立ちます。
更新:
はまた、私は別のクエリを使用しています:
CREATE TRIGGER SAMPLE_TRIGGER NO CASCADE BEFORE INSERT ON TABLE_1
FOR EACH ROW
BEGIN
SET NEW.RID = (SELECT ID FROM TABLE_2 WHERE ACTIVE=0 FETCH FIRST 1 ROWS ONLY WITH RS USE AND KEEP EXCLUSIVE LOCKS);
IF (NEW.RID IS NULL) THEN
SIGNAL SQLSTATE '73550' SET MESSAGE_TEXT='+ID';
END IF;
END;
"非コミット読み取りで、" 別のエラーにDB2で
right syntax to use near 'LIMIT 1 WITH RS USE AND KEEP EXCLUSIVE LOCKS);
IF (NEW.RID IS NULL) THEN'
"WITH UR"はDB2です。 "NO NOWOCK" MySql – DwB
を試してください私の質問を 'WITH RS'の別の問題で更新しました。提案してください ? – user2986042