0

sqldb.map から呼び出される sql ファイルにデータベース トリガーを追加して、データベースの作成後にいくつかのデータベース トリガーを作成しようとしています。

ただし、トリガーを作成するには、delimiter コマンドを使用して区切り文字をセミコロン以外のものに変更する必要があります。これは失敗し、結果トリガーの作成は両方とも標準で失敗しますyou have a syntax error message.。この方法で単純な sql ステートメントを実行できますが、区切り文字が好きではありません。

何かご意見は?

delimiter //

CREATE TRIGGER `SHOW_ADD_NEWS_ITEM` 
AFTER INSERT ON `show`
FOR EACH ROW 
    BEGIN
        declare username varchar(255);
        IF NEW.privacy_key IS NOT NULL AND NEW.privacy_key <> 'PRIVATE' and (NOT EXISTS (select id from feed_friend_activity 
                where location_identifier = NEW.uuid and user_id = NEW.user_id and event_type = 'published show')) THEN
            select concat(user.first_name,user.last_name) into username from user where user.id = NEW.user_id;
            insert into feed_friend_activity 
                (location_identifier,user_id,event_type,user_name,item_name,created_on) 
                values (NEW.uuid,NEW.user_id,'published show',username,NEW.name,NEW.created_on);
        END IF;
    END
//
4

1 に答える 1

1

Propel 1.6.7 は をサポートするようになりDELIMITERました。詳細については、このプル リクエストを参照してください。SQL が有効であれば、1.6.7 以降で問題なく動作します。

于 2012-08-16T07:32:40.687 に答える