MySQL与Oracle 差异比较之六触发器
触发器
编号 | 类别 | ORACLE | MYSQL | 注释 |
1 | 创建触发器语句不同 | create or replace trigger TG_ES_FAC_UNIT before insert or update or delete on ES_FAC_UNIT for each row |
create trigger `hs_esbs`.`TG_INSERT_ES_FAC_UNIT` BEFORE INSERT on `hs_esbs`.`es_fac_unit` for each row |
1. Oracle使用create or replace trigger语法创建触发器. Mysql使用 create trigger创建触发器. 2. Oracle可以在一个触发器触发insert,delete,update事件. Mysql每个触发器只支持一个事件. 也就是说,目前每个trigger需要拆分成3个mysql trigger. 3. mysql trigger 不能在客户端显示或编辑.需要在服务器所在的机器上操作. |
2 | 触发器new和old记录行的引用不同 | 取得新数据: :new.FAC_CD 取得老数据: :old.FAC_CD |
取得新数据: NEW.FAC_CD 取得老数据: OLD.FAC_CD |
1. new和old记录行的引用: mysql是NEW.col1,OLD.col1来引用。 oracle是:NEW.col1, :OLD.col1来引用。 2. NEW 和OLD不区分大小写. |
相关推荐
-
MySQL触发器使用详解
MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器 在MySQL中,创建触发器语法如下: 复制代码 代码如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 其中: trigger_name:标识触发器名称,用户自行指定: trigger_tim
-
MySQL存储过程中的基本函数和触发器的相关学习教程
MySQL存储过程的常用函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0 LCASE (string2 ) //转换成小写 LEFT (string2 ,length ) //从string2中的左边起取length个字符 LENGTH (string ) //string长度 LOAD_FI
-
MySQL触发器 Update触发Insert失败
今天工作需要,想要实现将仅对状态更新的表进行历史记录显示,于是考虑在原表中建立触发器,将更新的内容同时写入另一张表 于是进行测试 --建立测试表CREATE TABLE `triggletest_triggle` ( `id` INT(11) NOT NULL, `name` VARCHAR(5) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB --建立目标表 CREATE TAB
-
Mysql中的触发器简单介绍及使用案例
什么是触发器? 触发器是数据库的一个程序,他是用来监听着数据表的某个行为,一旦数据表的这个行为发生了,马上执行相应的sql语句 触发器的语法结构: create trigger 触发器的名称触发器事件 on 监听的表名 for each row 行为发生后执行的sql语句 触发器事件组成::两部分组成: 触发器事件发生的时间-----是在监听的表的行为 after before 常用的是after 触发器执行的内容:增删改 创建order 表的时候,需要注意,因为order在mysql中是一个关
-
mysql 触发器用法实例详解
MySQL触发器语法详解: 触发器 trigger是一种特殊的存储过程,他在插入(inset).删除(delete)或修改(update)特定表中的数据时触发执行,它比数据本身标准的功能更精细和更复杂的数据控制能力.触发器不是由程序调用,而是由某个事件来触发的.在有数据修改时自动强制执行其业务规则,经常用于加强数据的完整性约束和业务规则等.触发器可以查询其他表,而且包含复制的sql语句.触发器也可用于强制引用完整性.触发器可以强制比用check约束定义的约束更为复杂的约束. (一).CREAT
-
MySQL 触发器详解及简单实例
MySQL 触发器简单实例 语法 CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. { BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后. { INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert.update或delete的过程中触发. ON <表名称> --触发器是属于某一个表
-
MySQL与Oracle 差异比较之六触发器
触发器 编号 类别 ORACLE MYSQL 注释 1 创建触发器语句不同 create or replace trigger TG_ES_FAC_UNIT before insert or update or delete on ES_FAC_UNIT for each row create trigger `hs_esbs`.`TG_INSERT_ES_FAC_UNIT` BEFORE INSERT on `hs_esbs`.`es_fac_unit` for each row
-
MySQL与Oracle 差异比较之四条件循环语句
循环语句 编号 类别 ORACLE MYSQL 注释 1 IF语句使用不同 IF iv_weekly_day = 'MON'THEN ii_weekly_day := 'MON'; ELSIF iv_weekly_day = 'TUE' THEN ii_weekly_day := 'TUE'; END IF; IF iv_weekly_day = 'MON'THEN set ii_weekly_day = 'MON'; ELSEIF iv_weekly_d
-
MySQL与Oracle 差异比较之七 其它
其它 编号 类别 ORACLE MYSQL 注释 1 内连接的更改 1. select a.*, b.*, c.*, d.* from a, b, c, d where a.id = b.id and a.name is not null and a.id = c.id(+) and a.id = d.id(+) "(+)"所在位置的另一侧为连接的方向, 所以上面的例子1是左连接. 以下的例子2既是右连接. 2. select a.*, b.*, c.*, d.
-
MySQL与Oracle 差异比较之七用户权限
用户权限 编号 类别 ORACLE MYSQL 注释 1 创建用户 Create user user_name identified by user_password default tablespace starSpace temporary tablespace temp; CREATE USER user_name IDENTIFIED BY user_password; 1.oracle创建用户 Oracle 的默认用户有三个: sys / system / scott. 其中sys和
-
MySQL与Oracle差异比较之五存储过程&Function
存储过程&Function 编号 类别 ORACLE MYSQL 注释 1 创建存储过程语句不同 create or replace procedure P_ADD_FAC( id_fac_cd IN ES_FAC_UNIT.FAC_CD%TYPE) is DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`; create procedure P_ADD_FAC( id_fac_cd varchar(100)) 1.在创建存储过程时如
-
MySQL与Oracle差异比较之三 函数
函数 编号 类别 ORACLE MYSQL 注释 1 数字函数 round(1.23456,4) round(1.23456,4) 一样: ORACLE:select round(1.23456,4) value from dual MYSQL:select round(1.23456,4) value 2 abs(-1) abs(-1) 功能: 将当前数据取绝对值 用法: oracle和mysql用法一样 mysql: select abs(-1) value oracle: select a
-
MySQL与Oracle差异比较之二 基本语法
基本语法 编号 类别 ORACLE MYSQL 注释 1 变量的声明方式不同 li_index NUMBER := 0 DECLARE li_index INTEGER DEFAULT 0 1. mysql 使用DECLARE定义局部变量. 定义变量语法为: DECLARE var_name[,...] type [DEFAULT value] 要给变量提供一个默认值,需要包含一个DEFAULT子句.值可以被指定为一个表达式,不需要为一个常数.如果没有DEFAULT子句,初始值为NUL
-
MySQL与Oracle 差异比较之一数据类型
数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型: MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理 MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前
-
MySQL与Oracle数据类型对应关系(表格形式)
MySQL与Oracle两种数据库在工作中,都是用的比较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上一定的麻烦,下面介绍MySQL与Oracle数据库数据类型的对应关系. 一.常见数据类型在MySQL与Oracle数据库中的表现形式 说明 mysql oracle 变长字符串 VARCHAR[0-65535] 定义长度默认按字符长度计算,如果是GBK编码的汉字将占用2个字节 VARCHAR2[1-4000] VARCHAR是VARCHAR2的同义词
-
MySQL与Oracle SQL语言差异比较一览
数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型: MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理 MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前
随机推荐
- SQL Server 2005中的外联结用法
- dos之for命令实现扫描网段的端口,用于辅助解决ARP挂马
- Java中的常量避免反模式的方法
- java的Jackson将json字符串转换成泛型List
- oracle sqlplus 常用命令大全
- php json与xml序列化/反序列化
- php中解析带中文字符的url函数分享
- MySQL绿色版(zip解压版)的安装图文教程(mysql-5.6.22-win32.zip)
- Cygwin中安装PHP方法步骤
- PHP获取短链接跳转后的真实地址和响应头信息的方法
- SQL 比较一个集合是否在另一个集合里存在的方法分享
- 浅谈jQuery双事件多重加载的问题
- canvas 绘制圆形时钟
- c#得到本月有几周和这几周的起止时间示例代码
- Java项目开发命名规范(动力节点Java学院整理)
- 详解JavaScript中的Unescape()和String() 函数
- jquery实现的树形目录实例
- java web在高并发和分布式下实现订单号生成唯一的解决方案
- vue项目中导入swiper插件的方法
- 易语言自定义数据类型的使用代码