mysql - 重启mySQL Server后表为空

标签 mysql triggers restart

我在数据库中有很多表。 奇怪的是重启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/

相关文章:

php - 事件开始日期和结束日期之间的 MySQL 日期

mysql - 语法错误或访问冲突 : 1055 'database.order.oid' isn't in GROUP BY

mysql - mysql中的这个触发器有什么问题?

mysql - 尝试更新以前插入的行时出现 INSERT 错误之前

android - 从 Android 重新启动整个设备

php - HTML 表格上的颜色与来自 MySql 的组记录交错

php - PHP MySQL 检索某个用户的信息

oracle - 查找当前正在运行的作业的作业ID/只允许单个作业更新表

android - 如何重启onCreate函数

c++ - 服务重启后套接字未释放