データベース内に多数のテーブルがあります。 奇妙なことは、mySQLを再起動した後に1つのテーブルが常に空になることです。 それはTEMPテーブルのようですが、私はそれを疑っています。 どこがTEMPテーブルであるか、このイベントを引き起こす何かがわかります。mySQLサーバの再起動後にテーブルが空になる
トリガーについて言えば、値を更新する別のテーブル内にトリガーがありますが、これがその原因ではないと思います。
変更した場合は、[編集]
マイトリガークエリは
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を手に入れました。
私の最初の推測では、トランザクション内のデータをロードし、決してトランザクションをコミットしないことになります。 –
私はまた、他のテーブルのようにテーブルの中にデータを挿入します。私は私のデータベースの中に他のテーブルのようにこのテーブルを構築しました。 –
「SQLのリセット」についてはどうしたらいいですか?どういう意味ですか? MySQLサーバーを再起動しているということですか?または、データベースを切断して接続していますか?あなたは何らかの種類のSQL文を実行していますか? – spencer7593