DDL - 不能使用分隔符?

时间:2012-08-14 16:23:58

标签: propel

我正在尝试在创建数据库之后创建一些数据库触发器,方法是将它们添加到从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
//

1 个答案:

答案 0 :(得分:1)

Propel 1.6.7现在支持DELIMITER。有关详细信息,请参阅this Pull Request。如果您的SQL有效,那么它将适用于1.6.7或更高版本。