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 '' 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),''); -- 根据city_adcode参数设置province_temp为当前城市的省份名称
update china_address set province= province_temp where adcode=city_adcode; -- 更新当前city_adcode对应的记录的省份为province_temp
END WHILE; -- 结束循环 CLOSE cur;-- 这个语句关闭先前打开的光标。
end;
sql 存储过程和触发器的更多相关文章
- 查找SQL 存储过程、触发器、视图!
ALTER proc [dbo].[SP_SQL](@ObjectName sysname) as set nocount on ; declare @Print nvarchar(max)-- ...
- SQL存储过程和触发器
一. 存储过程 1. 有关概念 存储过程是由SQL语句及控制流语句组成的集合.调用一个存储过程,可以一次性地执行过程中的所有语句.从这一点来说,它类似于程序. 存储过程由用户建立,它作为数据库的一个 ...
- 走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 ) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SE ...
- MS SQL Server之光标、存储过程和触发器
光标 通常数据库操作被认为是以数据集为基础的操作,但是光标被用于以记录为单位来进行操作,来获取数据库中的数据的子集.光标一般用于过程化程序里的嵌入的SQL语句. 对光标的定义如下: DECLARE C ...
- 查看SQL SERVER 加密存储过程,函数,触发器,视图
原文:查看SQL SERVER 加密存储过程,函数,触发器,视图 create PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset noc ...
- SQL基本编程,分支语句,循环语句,存储过程,触发器
基本编程: 定义变量 declare @变量名 数据类型 赋值 set @变量名 = 值 select @变量名 = 值 取值打印 select @变量名 print @变量名 映射到结果集 打印到消 ...
- 转:SQL进阶之变量、事务、存储过程与触发器
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 DECLARE @name varchar(20) DECLARE @id int (2)为变量赋值 SET ...
- SQL server 数据库的索引和视图、存储过程和触发器
1.索引:数据排序的方法,快速查询数据 分类: 唯一索引:不允许有相同值 主键索引:自动创建的主键对应的索引,命令方式不可删 聚集索引:物理顺序与索引顺序一致,只能创建一个 非聚集索引:物理顺序与索引 ...
- SQL Server CLR 使用 C# 自定义存储过程和触发器
资源来源:https://www.cnblogs.com/Brambling/p/8016060.html SQL Server CLR 使用 C# 自定义存储过程和触发器 这一篇博客接着上一篇博 ...
随机推荐
- linux 中 修改权限的命令 chmod
今天被这个命令给黄了, 连这个都记不住,是该好好的复习复习了,问了一个问题,就是说这个tomcat 如何去修改关于这个权限的问题:一下子把我弄蒙了,不说了,心累: 修改linux文件权限命令:chmo ...
- SQL注入之Sqli-labs系列第四十六关(ORDER BY注入)
0X1查看页面 0x2源码 <?php include("../sql-connections/sql-connect.php"); $id=$_GET['sort']; i ...
- 台达VFD-B变频器调试
一.变频器上电调试 变频器安装完成后,断开变频器的输出,在没通电前先使用数字表的二极管档对变频器的输入输出进行测量,确保无短路情况,然后接通变频器工作电源,(注意变频器标定的工作电源电压与外部输入电压 ...
- [LeetCode&Python] Problem 27. Remove Element
Given an array nums and a value val, remove all instances of that value in-placeand return the new l ...
- js中Array数组的属性和方法
这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...
- 使用Angular cli创建组件报错: Unexpected token / in JSON at position....
之前为了熟悉流程一直都是手动创建组件,今天试着用cli创建组件,居然报错了,报错大致为: Unexpected token / in JSON at position.... ,并且错误指向了.ang ...
- 小程序cover-view踩过的坑
1.前段时间开发一个小程序,里边用到cover-view,发现cover-view其实很多都是不支持的,比如动画,如果你想要在cover-view上边加动画你会发现没有效果,虽然在模拟器里边可以显示动 ...
- python中的Matplot库和Gdal库绘制富士山三维地形图-参考了虾神的喜马拉雅山
首先请大家读一下面这篇文章了解什么是Gdal http://blog.csdn.net/grllery/article/details/77822595 剩下的我要公布绘制富士山的代码了,虽然基本co ...
- linux下tomcat的启动,停止,重启脚本
1.tomcat的启动脚本 #vi start_tomcat.sh pid=`ps -ef |grep tomcat |grep -v grep|awk '{print $2}'` ##定 ...
- Java面试3
反射的定义: 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作.例如它允许一个java的类获取它所有的成员变量和方法并且显示出来. 反射机制的 ...