Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengendalikan pertanyaan kemas kini dengan klausa output apabila pencetus wujud?

Bagaimana untuk mengendalikan pertanyaan kemas kini dengan klausa output apabila pencetus wujud?

Mary-Kate Olsen
Lepaskan: 2025-01-24 13:52:09
asal
145 orang telah melayarinya

How to Handle UPDATE Queries with OUTPUT Clause When Triggers Exist?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan