menggunakan klausa output untuk mengemas kini
Apabila cuba melaksanakan pertanyaan kemas kini yang mengandungi klausa output, kesilapan mungkin berlaku pada jadual sasaran.
Penyelesaian: Gunakan pertanyaan pertengahan
Untuk menyelesaikan masalah ini, sila ubah permintaan untuk mendapatkan nilai sebelum kemas kini:
<code class="language-sql">SELECT BatchFileXml, ResponseFileXml, ProcessedDate
FROM BatchReports
WHERE BatchReports.BatchReportGUID = @someGuid
UPDATE BatchReports
SET IsProcessed = 1
WHERE BatchReports.BatchReportGUID = @someGuid</code>
Salin selepas log masuk
Kaedah ini mengelakkan penggunaan klausa output, dengan itu mengurangkan isu keserasian yang disebabkan oleh pencetus.
Elakkan menggunakan klausa output: kesan berbahaya
Gabungan klausa output dan pencetus boleh menyebabkan pengambilan data yang salah. Khususnya, klausa output diambil mengikut nilai pengambilan status pada masa pengubahsuaian, dan bukannya nilai pengambilan selepas kemas kini selesai. Ini boleh menyebabkan data dalam hasil output tidak betul atau tamat tempoh.
kaedah perubahan dan kecacatannya
Mencuba pembolehubah jadual pertengahan untuk mengelakkan masalah ini juga telah terbukti sia -sia. Timestamp tidak dibenarkan memasukkan pembolehubah jadual, walaupun binari (8) digunakan untuk menunjukkan cap waktu.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan pertanyaan kemas kini dengan klausa output apabila pencetus wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!