mysql數(shù)據(jù)表:
目前創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、贛州網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
create table driver_order (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
area_start varchar(200),
area_end varchar(200),
order_number varchar(200),
create_user varchar(200),
primary key (id)
);
創(chuàng)建觸發(fā)器:
DELIMITER $$
CREATE TRIGGER seq_driver_order_number BEFORE INSERT ON driver_order
FOR each ROW
BEGIN
DECLARE seq_type INT(10);
SET seq_type = getUserNo(NEW.create_user);
SET NEW.order_number = getNextCommSequence("motor", seq_type);
END$$
DELIMITER ;
以下是mybatis操作觸發(fā)器的配置方法:
insert id="insertOrder" parameterType="DriverOrder"
selectKey keyProperty="id,orderNumber" keyColumn="ID,ORDER_NUMBER" order="AFTER" resultType="java.util.Map"
SELECT ID,ORDER_NUMBER FROM DRIVER_ORDER where ID = last_insert_id()
/selectKey
INSERT INTO
DRIVER_ORDER(ID,ORDER_NUMBER,AREA_START,AREA_END,CREATE_USER,CREATE_TIME)
VALUES
(#{id},
#{orderNumber,jdbcType=VARCHAR},
#{areaStart,jdbcType=VARCHAR},
#{areaEnd,jdbcType=VARCHAR},
#{createUser,jdbcType=VARCHAR},
now())
/insert
存儲過程:
mysql
CREATE
PROCEDURE
up_sbwcsl(IN
xbh
int)
BEGIN
begin
select
科研計劃.系部號,是否申報,完成數(shù)量
from
科研計劃
Where
科研計劃.系部號=@xbh
and
是否申報='是'
END;
觸發(fā)器語法一樣的。
Create
trigger
up_ysbz
On
科研計劃
For
update
As
Begin
If
update(驗收標(biāo)志)
Update
科研計劃
set
驗收標(biāo)志='驗收通過'
end
主要的就是數(shù)據(jù)的截取吧,在家判斷就可以了
CREATE TRIGGER trigger1
AFTER insert ON AAA
FOR EACH ROW
BEGIN
insert INTO BBB
(a, b, c, d)
values substr
('this\is\a\test', 1, instr('this\is\a\test', '\', 1, 1) - 1),
substr
('this\is\a\test',
instr('this\is\a\test', '\', -1, 3) + 1,
instr('this\is\a\test', '\', -1, 2) -
(instr('this\is\a\test', '\', -1, 3) + 1)),
(substr('this\is\a\test',
instr('this\is\a\test', '\', -1, 2) + 1,
instr('this\is\a\test', '\', -1, 1) -
(instr('this\is\a\test', '\', -1, 2) + 1)),
substr(NEW :aa, instr(NEW :aa, '\', -1, 1) + 1, length(NEW :aa)));
END;
1、先創(chuàng)建一個空的person_log表用來存放被刪除的記錄。
2、創(chuàng)建一個觸發(fā)器del_person,執(zhí)行刪除操作后將記錄插入到person_log表。
觸發(fā)器person_log
3、從person表中執(zhí)行刪除記錄操作來觸發(fā)事件
4、查看person_log表結(jié)果:
結(jié)果:從person表執(zhí)行刪除一條記錄后會觸發(fā)person_log表中增加被刪除的記錄。
delimiter //
create trigger upd_a
after insert on table_b
for each row
begin
if
new.收費單號 like 'Y%'
then
update table_a set table_a.編號 =1 where table_a.操作員id = new.收費員id and table_a.編號 1 ;
end if;
end//
delimiter ;
1.從語法上來說,你這樣寫是沒有問題的,因為這里把new當(dāng)成表名。編譯自然是成功的,但是當(dāng)插入數(shù)據(jù)用到觸發(fā)器的時候,就會報找不到new表的錯誤了。
2.列出每一個字段是可以的,但是寫起來比較麻煩,要這樣:
insert into ct_master1 value (new.c1,new.c2,new.c3);
簡潔的方法,就是插入的時候設(shè)定一個唯一性的值,比如id
然后就可以把insert改成