mysql觸發器調用本表測試

 



#sql1
CREATE TABLE `test1` (
	`id` INT(11) NULL DEFAULT NULL,
	`name` VARCHAR(256) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci'
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;


#sql2
CREATE TABLE `test2` (
	`id` INT(11) NULL DEFAULT NULL,
	`name` VARCHAR(256) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci'
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;


#sql3
CREATE TABLE `test` (
	`id` INT(11) NULL DEFAULT NULL,
	`name` VARCHAR(256) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci'
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;


#sql4
CREATE DEFINER=`root`@`localhost` TRIGGER `test1_before_insert` BEFORE INSERT ON `test1` FOR EACH ROW BEGIN
INSERT INTO test2(id,name) VALUES(1,'test1');
INSERT INTO test(id,name) VALUES(1,'test1'); END


#sql5
CREATE DEFINER=`root`@`localhost` TRIGGER `test2_before_insert` BEFORE INSERT ON `test2` FOR EACH ROW BEGIN
INSERT INTO test1(id,name) VALUES(1,'test2');
INSERT INTO test(id,name) VALUES(1,'test1'); END




#向`test1` 中插入數據報錯。
/* SQL錯誤(1442):Can't update table 'test1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. */
/* 受影響記錄行數: 0  已找到記錄行: 0  警告: 0  持續時間 0 的 1 查詢: 0.000 秒. */


#刪掉sql5創建的觸發器,插入數據成功。




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章