MySql 中 的delimiter

来源:互联网 发布:南柯奇谭 墨竹 知乎 编辑:程序博客网 时间:2024/05/22 11:40

其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。


如下脚本, 在 workbench 中只有加 delimiter 才能正常执行下去。

#insertdrop trigger if exists trig_tag_I;DELIMITER $$CREATE TRIGGER trig_tag_Iafter  INSERT  on tag for each rowBEGIN    if exists(SELECT 1 FROM information_schema.TABLES WHERE TABLE_SCHEMA=database() and table_name ='dc_sync_log')    THEN        INSERT INTO dc_sync_log ( tableName, pkName, pkValue, opType) values( 'tag', 'id',NEW.id,'I' );    end if;END$$#deleteDELIMITER $$drop trigger if exists trig_tag_D$$DELIMITER $$CREATE TRIGGER trig_tag_Dafter  delete  on tag for each rowBEGIN    if exists(SELECT 1 FROM information_schema.TABLES WHERE TABLE_SCHEMA=database() and table_name ='dc_sync_log')    THEN        INSERT INTO dc_sync_log ( tableName, pkName, pkValue, opType) values( 'tag', 'id',OLD.id,'D' );    end if;END$$#updateDELIMITER $$drop trigger if exists trig_tag_U$$DELIMITER $$CREATE TRIGGER trig_tag_Uafter  update  on tag for each rowBEGIN    if exists(SELECT 1 FROM information_schema.TABLES WHERE TABLE_SCHEMA=database() and table_name ='dc_sync_log')    THEN        INSERT INTO dc_sync_log ( tableName, pkName, pkValue, opType) values( 'tag', 'id',NEW.id,'U' );    end if;END$$

参考: 点击打开链接

原创粉丝点击