因为我正在处理一个用于管理元数据的小应用程序,我想知道是否可以在满足条件的情况下在另一个表中插入行。
让我举一个示例:所以,让我们说我们有表ispu_plan
CREATE TABLE `ispu_plan` (
`id` int(11) NOT NULL,
`id_jls` int(11) NOT NULL,
`id_razina_plan` int(11) NOT NULL,
`id_revizija` int(11) NOT NULL,
`naziv_plan` varchar(150) NOT NULL,
`ispu_naziv` varchar(100) NOT NULL,
`id_mjerilo` int(11) NOT NULL,
`datum_donosenja_plana` date DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
并且我正在更新表ispu_plan
我想更新另一个表(例如ispu_plan_updated
),如果ispu_plan
中的某些条件与表{{1}中的相同行相符}}
使用此查询:
ispu_plan
我想在表SELECT * FROM ispu_plan WHERE datum_donosenja_plana BETWEEN '2014-01-01' AND CURDATE()
中插入行。这样的事情是可能的,我可以使用视图在ispu_plan_updated
中插入行吗?
谢谢
答案 0 :(得分:1)
您可以使用触发器来实现:
DROP TRIGGER IF EXISTS ispu_plan_trigger;
DELIMITER |
CREATE TRIGGER ispu_plan_trigger AFTER UPDATE ON ispu_plan
FOR EACH ROW BEGIN
-- example condition with update:
IF NEW.datum_donosenja_plana >= '2017-01-01' THEN
UPDATE ispu_plan_updated SET naziv_plan = 'some_value' WHERE id = NEW.id
LIMIT 1;
END IF;
END;
DELIMITER ;