时间:2021-07-01 10:21:17 帮助过:18人阅读
修改:
- <span style="color: #000000"> DELIMITER $
- </span><span style="color: #0000ff">CREATE</span> <span style="color: #0000ff">TRIGGER</span> tr_student_update AFTER <span style="color: #0000ff">UPDATE</span> <span style="color: #0000ff">ON</span> student <span style="color: #0000ff">FOR</span><span style="color: #000000"> EACH ROW
- </span><span style="color: #0000ff">BEGIN</span>
- <span style="color: #0000ff">SET</span> <span style="color: #008000">@txt</span> <span style="color: #808080">=</span> CONCAT(<span style="color: #ff0000">‘</span><span style="color: #ff0000">修改学生:修改前[id:</span><span style="color: #ff0000">‘</span>,old.id,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,name:</span><span style="color: #ff0000">‘</span>,old.name,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,city:</span><span style="color: #ff0000">‘</span>,old.city,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,age:</span><span style="color: #ff0000">‘</span>,old.age,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,gradeId:</span><span style="color: #ff0000">‘</span>,old.gradeId,<span style="color: #ff0000">‘</span><span style="color: #ff0000">]修改后[id:</span><span style="color: #ff0000">‘</span>,new.id,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,name:</span><span style="color: #ff0000">‘</span>,new.name,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,city:</span><span style="color: #ff0000">‘</span>,new.city,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,age:</span><span style="color: #ff0000">‘</span>,new.age,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,gradeId:</span><span style="color: #ff0000">‘</span>,new.gradeId,<span style="color: #ff0000">‘</span><span style="color: #ff0000">]</span><span style="color: #ff0000">‘</span><span style="color: #000000">);
- </span><span style="color: #0000ff">INSERT</span> <span style="color: #0000ff">INTO</span> student_log <span style="color: #0000ff">VALUES</span>(<span style="color: #0000ff">NULL</span>,<span style="color: #ff0000">‘</span><span style="color: #ff0000">修改</span><span style="color: #ff0000">‘</span>,<span style="color: #008000">@txt</span>,<span style="color: #ff0000">‘</span><span style="color: #ff0000">admin</span><span style="color: #ff0000">‘</span><span style="color: #000000">,NOW());
- </span><span style="color: #0000ff">END</span><span style="color: #000000"> $
- DELIMITER ;</span>
删除:
- <span style="color: #008080">1</span> <span style="color: #000000"> DELIMITER $
- </span><span style="color: #008080">2</span> <span style="color: #0000ff">CREATE</span> <span style="color: #0000ff">TRIGGER</span> tr_student_delete AFTER <span style="color: #0000ff">DELETE</span> <span style="color: #0000ff">ON</span> student <span style="color: #0000ff">FOR</span><span style="color: #000000"> EACH ROW
- </span><span style="color: #008080">3</span> <span style="color: #0000ff">BEGIN</span>
- <span style="color: #008080">4</span> <span style="color: #0000ff">SET</span> <span style="color: #008000">@txt</span> <span style="color: #808080">=</span> CONCAT(<span style="color: #ff0000">‘</span><span style="color: #ff0000">删除学生:[id:</span><span style="color: #ff0000">‘</span>,old.id,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,name:</span><span style="color: #ff0000">‘</span>,old.name,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,city:</span><span style="color: #ff0000">‘</span>,old.city,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,age:</span><span style="color: #ff0000">‘</span>,old.age,<span style="color: #ff0000">‘</span><span style="color: #ff0000">,gradeId:</span><span style="color: #ff0000">‘</span>,old.gradeId,<span style="color: #ff0000">‘</span><span style="color: #ff0000">]</span><span style="color: #ff0000">‘</span><span style="color: #000000">);
- </span><span style="color: #008080">5</span> <span style="color: #0000ff">INSERT</span> <span style="color: #0000ff">INTO</span> student_log <span style="color: #0000ff">VALUES</span>(<span style="color: #0000ff">NULL</span>,<span style="color: #ff0000">‘</span><span style="color: #ff0000">删除</span><span style="color: #ff0000">‘</span>,<span style="color: #008000">@txt</span>,<span style="color: #ff0000">‘</span><span style="color: #ff0000">admin</span><span style="color: #ff0000">‘</span><span style="color: #000000">,NOW());
- </span><span style="color: #008080">6</span> <span style="color: #0000ff">END</span><span style="color: #000000"> $
- </span><span style="color: #008080">7</span> DELIMITER ;
注意: 1,MySQL 不能将 insert,update,delete 放在一起,需分开建; 当前系统时间使用 NOW();
2,oracle支持 or replace 而mysql是不可以的
3,oracle在使用的变量要在begin前面声明。而mysql则用 @ 符号直接使用
4,oracle变量赋值用的是 := ,而mysql用的是 = 。
5,oracle新表和旧表用的是:new 和:old,而mysql用的是new 和old。
ORACLE 示例:
- <span style="color: #008080"> 1</span> <span style="color: #0000ff">CREATE</span> <span style="color: #808080">OR</span> <span style="color: #ff00ff">REPLACE</span> <span style="color: #0000ff">TRIGGER</span> tr_teacher AFTER <span style="color: #0000ff">INSERT</span> <span style="color: #808080">OR</span> <span style="color: #0000ff">UPDATE</span> <span style="color: #808080">OR</span> <span style="color: #0000ff">DELETE</span> <span style="color: #0000ff">ON</span> teacher <span style="color: #0000ff">FOR</span><span style="color: #000000"> EACH ROW
- </span><span style="color: #008080"> 2</span> <span style="color: #0000ff">declare</span>
- <span style="color: #008080"> 3</span> v_opt_type teacher_log.opt_type<span style="color: #808080">%</span><span style="color: #000000">TYPE;
- </span><span style="color: #008080"> 4</span> v_old_value teacher_log.old_value<span style="color: #808080">%</span><span style="color: #000000">TYPE;
- </span><span style="color: #008080"> 5</span> v_tno teacher_log.tno<span style="color: #808080">%</span><span style="color: #000000">TYPE;
- </span><span style="color: #008080"> 6</span> <span style="color: #0000ff">begin</span>
- <span style="color: #008080"> 7</span> <span style="color: #0000ff">IF</span> inserting <span style="color: #0000ff">THEN</span>
- <span style="color: #008080"> 8</span> v_opt_type:<span style="color: #808080">=</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">;
- </span><span style="color: #008080"> 9</span> v_tno:<span style="color: #808080">=</span><span style="color: #000000">:new.tno;
- </span><span style="color: #008080">10</span> ELSIF deleting <span style="color: #0000ff">THEN</span>
- <span style="color: #008080">11</span> v_opt_type:<span style="color: #808080">=</span><span style="color: #800000; font-weight: bold">2</span><span style="color: #000000">;
- </span><span style="color: #008080">12</span> v_tno:<span style="color: #808080">=</span><span style="color: #000000">:old.tno;
- </span><span style="color: #008080">13</span> v_old_value:<span style="color: #808080">=</span>:old.tname<span style="color: #808080">||</span><span style="color: #ff0000">‘</span><span style="color: #ff0000">,</span><span style="color: #ff0000">‘</span><span style="color: #808080">||</span>:old.sal<span style="color: #808080">||</span><span style="color: #ff0000">‘</span><span style="color: #ff0000">,</span><span style="color: #ff0000">‘</span><span style="color: #808080">||</span><span style="color: #000000">:old.comm;
- </span><span style="color: #008080">14</span> <span style="color: #0000ff">ELSE</span>
- <span style="color: #008080">15</span> v_opt_type:<span style="color: #808080">=</span><span style="color: #800000; font-weight: bold">3</span><span style="color: #000000">;
- </span><span style="color: #008080">16</span> v_tno:<span style="color: #808080">=</span><span style="color: #000000">:old.tno;
- </span><span style="color: #008080">17</span> v_old_value:<span style="color: #808080">=</span>:old.tname<span style="color: #808080">||</span><span style="color: #ff0000">‘</span><span style="color: #ff0000">,</span><span style="color: #ff0000">‘</span><span style="color: #808080">||</span>:old.sal<span style="color: #808080">||</span><span style="color: #ff0000">‘</span><span style="color: #ff0000">,</span><span style="color: #ff0000">‘</span><span style="color: #808080">||</span><span style="color: #000000">:old.comm;
- </span><span style="color: #008080">18</span> <span style="color: #0000ff">END</span> <span style="color: #0000ff">IF</span><span style="color: #000000">;
- </span><span style="color: #008080">19</span> <span style="color: #0000ff">INSERT</span> <span style="color: #0000ff">INTO</span> teacher_log <span style="color: #0000ff">VALUES</span><span style="color: #000000">(sq_log.nextval,v_old_value,SYSDATE,v_opt_type,v_tno);
- </span><span style="color: #008080">20</span> <span style="color: #0000ff">end</span> tr_teacher;
MySQL笔记
标签:cte 文本文件 将不 负数 user 需要 signed 其他 sys