我在数据库中有很多表。 奇怪的是重启mySQL后总是有一张表清空。 看起来它是一张临时表,但我对此表示怀疑。 我在哪里可以看到它是 TEMP 表还是触发此事件的其他内容。
说到触发器,我确实在另一个表中有一个触发器可以更新值,但我不认为这是其原因。
[编辑]
我的触发查询是
BEGIN
IF NEW.Discount <> OLD.Discount || NEW.Price <> OLD.Price || NEW.FirstYearDiscount <> OLD.FirstYearDiscount
THEN
INSERT INTO InvoiceTotal SET
PriceExcl = (SELECT
SUM((Price - (Price * (IF(Discount > FirstYearDiscount || Discount < 0, Discount, FirstYearDiscount) / 100))) * InvoicePeriod)
FROM InvoiceItem WHERE InvoiceID = NEW.InvoiceID),
InvoiceID = NEW.InvoiceID
ON DUPLICATE KEY UPDATE
PriceExcl = (SELECT
SUM((Price - (Price * (IF(Discount > FirstYearDiscount || Discount < 0, Discount, FirstYearDiscount) / 100))) * InvoicePeriod)
FROM InvoiceItem WHERE InvoiceID = NEW.InvoiceID);
END IF;
END
如果值发生变化,此触发器将更新值。
我还有一个 cronjob,可以在下订单时插入新值。
最佳答案
我对每个表进行了一些挖掘,单击操作
(与顶部的选项卡混合),并注意到一个名为存储引擎
的属性。它最初设置为内存,这对我来说似乎不太合适。所以我检查了其他数据库,发现它们都设置为MyISAM。因此,我将数据库中遇到问题的表更改为 MyISAM 并重新启动服务器以测试检查它们。现在数据已保存,没有任何问题!
希望它能帮助其他有同样问题的人(Y)
PS。谢谢各位的回复关于mysql - 重启mySQL Server后表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39677211/