3

SQL クエリ:

CREATE TRIGGER tg_newuser_insert
BEFORE INSERT ON tbl_newuser
FOR EACH ROW
BEGIN
  INSERT INTO tbl_seq VALUES (NULL)
  SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000'));
END

MySQL は次のように述べています: Documentation
#1064 - SQL 構文にエラーがあります。near 'SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000')); を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。6行目のEND'

4

1 に答える 1

0

フォーマットはオフDELIMITER $$です。ストアド プロシージャの作成と変わらないため、remember ステートメントが必要です。

このような問題が発生した場合は、いつでもドキュメントを確認してください。

ドキュメントを半分ほど下にスクロールして、例を確認します。

しかし、これはあなたが探しているものです:

DELIMITER $$
CREATE TRIGGER tg_newuser_insert 
BEFORE UPDATE ON tbl_newuser
FOR EACH ROW
    BEGIN

        SET NEW.id = CONCAT('YTUM', LPAD(LAST_INSERT_ID(), 8, '00000'));

    END $$
DELIMITER ;
于 2017-05-10T04:06:03.380 に答える