这是我在oracle中的语法,任何人都可以帮助将它转换为mysql ??
CREATE trigger trigger_name
before INSERT, UPDATE, DELETE ON xxx
FOR EACH ROW
BEGIN
IF INSERT THEN
INSERT INTO LOG( nik, date_log, action, table)
VALUES ( 62057, NOW( ) , 'insert', 'xxx') ;
ELSEIF UPDATE THEN
INSERT INTO LOG( nik, date_log, action, table)
VALUES ( 62057, NOW( ) , 'edit', 'xxx') ;
ELSEIF DELETE THEN
INSERT INTO LOG( nik, date_log, action, table)
VALUES ( 62057, NOW( ) , 'delete', 'xxx') ;
END IF;
END ;
答案 0 :(得分:0)
在MySQL中,你需要三个独立的触发器:一个用于INSERT,一个用于UPDATE,一个用于DELETE。
作为一个例子,插入""触发器看起来像这样:
DELIMITER $$
CREATE TRIGGER trigger_name
BEFORE INSERT ON xxx
FOR EACH ROW
BEGIN
INSERT INTO log(nik, date_log, action, `table`)
VALUES (62057, NOW(),'insert','xxx');
END$$
DELIMITER ;
(我相信TABLE
是MySQL中的保留字,因此需要对列名table
进行转义。规范模式是使用标识符周围的反引号。)
您需要遵循相同的模式为UPDATE和DELETE创建单独的触发器。