2012-03-28 8 views
0

私は、これをテストするためにbasinの挿入ステートメントを実行しようとすると、なぜこのトリガーがグループ化された関数の無効な使用についてエラーを出すのかを理解しようとしています。エラー1111:挿入からのmysqlのトリガー

私は何を間違っているのか理解するためにこれを試してみましたが、エラーは同じままです。エラー1111

DROP TRIGGER a_num; 
DELIMITER // 
CREATE TRIGGER a_num BEFORE INSERT ON test_a 

    FOR EACH ROW BEGIN 
DECLARE last INT DEFAULT 0; 
INSERT INTO test_b SET full_name = CONCAT_WS(' ', NEW.f_name, NEW.l_name); 
SET last = COUNT(id); 
UPDATE test_b SET number = CONCAT_WS('-', last, LEFT(NEW.f_name, 2), LEFT(NEW.f_name, 2)) WHERE id = last; 
END; 
// 

私は全く新しいものを使用したり構わないのは気にしないでください。

ありがとうございました。私はそれがあるべきだと思う

答えて

0

-

DROP TRIGGER a_num; 
DELIMITER // 
CREATE TRIGGER a_num BEFORE INSERT ON test_a 

FOR EACH ROW BEGIN 
    DECLARE last INT DEFAULT 0; 
    INSERT INTO test_b SET full_name = CONCAT_WS(' ', NEW.f_name, NEW.l_name); 
    SET last = LAST_INSERT_ID(); 
    UPDATE test_b SET number = CONCAT_WS('-', last, LEFT(NEW.f_name, 2), LEFT(NEW.f_name, 2)) WHERE id = last; 
END; 
// 
0

あなたはtest_a、あなたが使用しているINSERT文のCREATE文を提供することはできますか?

test_aを右クリックすると、[クリップボードにコピー...]が表示され、テーブル定義が送信されます。

同じレコードを挿入して更新する理由はありますか?これを1つのインサートに組み合わせることができますか?

関連する問題