2017-03-29 15 views
0

次のコードのエラーは何ですか?私はmysqlで実行していますエラーの原因となるmysqlのトリガー

CREATE TRIGGER tg_order_insert 
BEFORE INSERT 
    ON `order` FOR EACH ROW 
BEGIN 
    INSERT INTO `grocery`.`order_seqid` VALUE(NULL); 
    SET NEW.order_id = CONCAT('#GNC', LPAD(LAST_INSERT_ID(),3,'0')); 
END; 

食料品はデータベースであり、order_seqidと注文は2テーブルです。 order_seqidは、int型で自動インクリメントの場合は1つの属性のみを持つテーブルです。
私たちが注文表に挿入するIDに接頭辞を入れようとしています。 INSERT INTO.....END;行に2つのエラーが発生しています

+4

はい、間違いです。私もそれらを取得します。重要なのは**あなたが得ている特定のエラー**です。 MySQLは、問題の正確な場所を特定するのに非常に役立ちます。 – tadman

答えて

0

トリガー定義の前に区切り文字を宣言しましたか?

DELIMITER // 
CREATE TRIGGER tg_order_insert 
BEFORE INSERT 
    ON `order` FOR EACH ROW 
BEGIN 
    INSERT INTO `grocery`.`order_seqid` VALUE(NULL); 
    SET NEW.order_id = CONCAT('#GNC', LPAD(LAST_INSERT_ID(),3,'0')); 
END 
// 

あなたがいない場合、それはその最初の;を見て、構文エラーを呼び出したときに、その後、MySQLは、あなたのトリガ定義を終了しようとしていると考えているので

ような何か。

+0

ありがとうございました –

+0

この回答があなたの問題を解決した場合は&upvoteを受け入れるのを忘れないでください;) – wogsland

関連する問題