Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在其中制作一些触发器?_Mysql_Sql - Fatal编程技术网

Mysql 如何在其中制作一些触发器?

Mysql 如何在其中制作一些触发器?,mysql,sql,Mysql,Sql,触发器1: DELIMITER // CREATE TRIGGER `Trigger 1` AFTER INSERT ON `Likes` FOR EACH ROW BEGIN UPDATE News SET `CountUpLikes` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'up'), `CountDownLikes` = (SELECT COUNT (*) FROM `L

触发器1:

DELIMITER //
CREATE TRIGGER `Trigger 1` AFTER INSERT ON `Likes`
FOR EACH ROW
BEGIN 
UPDATE News SET 
`CountUpLikes` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'up'),
`CountDownLikes` = (SELECT COUNT (*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'down'),
`CountFavorites` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `IsFavorite` = 'yes') c;
END
DELIMITER //
CREATE TRIGGER `Trigger 1` AFTER UPDATE ON `Likes`
FOR EACH ROW
BEGIN 
UPDATE News SET 
`CountUpLikes` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'up'),
`CountDownLikes` = (SELECT COUNT (*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'down'),
`CountFavorites` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `IsFavorite` = 'yes') c;
END
触发器2:

DELIMITER //
CREATE TRIGGER `Trigger 1` AFTER INSERT ON `Likes`
FOR EACH ROW
BEGIN 
UPDATE News SET 
`CountUpLikes` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'up'),
`CountDownLikes` = (SELECT COUNT (*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'down'),
`CountFavorites` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `IsFavorite` = 'yes') c;
END
DELIMITER //
CREATE TRIGGER `Trigger 1` AFTER UPDATE ON `Likes`
FOR EACH ROW
BEGIN 
UPDATE News SET 
`CountUpLikes` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'up'),
`CountDownLikes` = (SELECT COUNT (*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `Type` = 'down'),
`CountFavorites` = (SELECT COUNT(*) FROM `Likes` WHERE `NewsIdn` = OLD.`NewsIdn` AND `IsFavorite` = 'yes') c;
END
请告诉我如何一次触发两个触发器

例如,我能做些什么

CREATE TRIGGER `Trigger full` AFTER UPDATE OR INSERT ON `Likes`

或否?

您不能使用1个触发器来代替某些触发器。Mysql不允许在同一个触发器上发生多个事件