zoukankan      html  css  js  c++  java
  • sql 存储过程和触发器

    mysql-----------------------------------------------------------------------------------------------------------------------------------------

    BEGIN
    
    DECLARE i INT4;
    DECLARE n INT4;
    
    DELETE FROM article_keywords WHERE article_id = NEW.id;
    set i = 0;
    select func_get_split_string_total(NEW.keywords,';') INTO i;
    set n = 1;
    while n<=i DO
    INSERT INTO article_keywords (article_id,keyword,sort_id) VALUES (NEW.id, func_get_split_string(NEW.keywords,';', n),n);
    set n = n+1;
    end WHILE;
    end
    BEGIN
    
    DECLARE i INT4;
    DECLARE n INT4;
    
    DELETE FROM article_keywords WHERE article_id = NEW.id;
    set i = 0;
    select func_get_split_string_total(NEW.keywords,';') INTO i;
    set n = 1;
    while n<=i DO
    INSERT INTO article_keywords (article_id,keyword,sort_id) VALUES (NEW.id, func_get_split_string(NEW.keywords,';', n),n);
    set n = n+1;
    end WHILE;
    end
    BEGIN
    DELETE FROM article_keywords WHERE article_id = OLD.id;
    end


    postgresql-----------------------------------------------------------------------------------------------------------------------------------------

    CREATE or Replace FUNCTION func_classification_updateTime() RETURNS trigger AS $func_classification_updateTime$ 
    BEGIN 
    update user_classification set updated_date = NOW() where user_id = NEW.user_id and name = NEW.classification_system_name; 
    return null; 
    END; 
    $func_classification_updateTime$ LANGUAGE plpgsql;
    
    
    CREATE TRIGGER t_classification_updateTime AFTER INSERT OR UPDATE OR DELETE ON classification_system 
    FOR EACH ROW EXECUTE PROCEDURE func_classification_updateTime();

    mysql存储过程-------------------------------------------------------------------------------------------------------------------------------

    create procedure pro14()
    begin
    DECLARE stop1 INT DEFAULT 0; -- 定义终止符stop1
    DECLARE city_adcode CHAR(225); -- 游标当前的城市adcode
    DECLARE province_temp CHAR(225); -- 临时存储省份字段
    DECLARE cur CURSOR FOR (select adcode from china_address where adcode not in (select adcode from china_address where adcode like '%0000')); -- 定义游标,查询所有市的adcode
    
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET stop1=1; -- 当游标遍历结束时,终止符stop1置为1
    OPEN cur; -- 开启游标
    WHILE (stop1 <> 1) DO -- 循环
    FETCH cur INTO city_adcode;-- 这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针,将当前游标的城市adcode赋给city_adcode参数
    select province into province_temp from china_address where adcode=CONCAT(left(city_adcode, 2),'0000'); -- 根据city_adcode参数设置province_temp为当前城市的省份名称
    update china_address set province= province_temp where adcode=city_adcode; -- 更新当前city_adcode对应的记录的省份为province_temp
    END WHILE; -- 结束循环
    
    CLOSE cur;-- 这个语句关闭先前打开的光标。
    end;
  • 相关阅读:
    tomcat快速部署脚本
    Centos7下搭建单节点Zookeeper
    request的基本使用用法
    Centos7 下配置jdk
    oracle备份脚本(以日期命名文件夹)
    Centos7 关闭防火墙
    Centos7 配置静态ip地址
    杀死占用8080端口的进程
    git clone的时候遇到“Please make sure you have the correct access rights and the repository exists”
    【笔记】关于多分类问题中的混淆矩阵,精准率
  • 原文地址:https://www.cnblogs.com/king1302217/p/6700850.html
Copyright © 2011-2022 走看看