下面是我需要创建的触发器但它没有被创建。请任何伙伴可以解释我这个触发器有什么问题?请帮帮我。
DELIMITER $$
CREATE TRIGGER property_history_update
AFTER UPDATE ON `properties`
FOR EACH ROW BEGIN
IF OLD.ListPrice != NEW.ListPrice THEN
INSERT INTO `property_history`
SET ListingKey = OLD.ListingKey,
ListPrice = NEW.ListPrice,
ListingStatus = OLD.ListingStatus,
LastUpdatedTime = NEW.LocalLastModifiedOn;
END IF;
END$$
DELIMITER ;
当我执行上述触发时,我收到如下错误:
致命错误:第99行的/var/www/phpmyadmin/libraries/import/sql.php超过了300秒的最长执行时间
答案 0 :(得分:2)
通过没有WHERE子句的UPDATE传递属性中的所有行将具有线性(O(n)[n是行数的因子])运行时间。如果所有行都在ListPrice中发生变化,那么该时间可以加倍。
示例:如果运行“UPDATE属性SET ListPrice = 5;”表中有10,000行,请确保在property_history表中有10,000个UPDATE和最多10,000个INSERT。
请确保你有三(3)件事情: