#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創建的觸發器,插入數據成功。