Mengapa Saya Mendapat Ralat \'Semak Sintaks Hampir TAMAT pada Baris 6\' Semasa Mencipta Pencetus MySQL untuk Padam Dari Jadual Selepas PADAM?

Mary-Kate Olsen
Lepaskan: 2024-11-02 16:53:02
asal
137 orang telah melayarinya

Why Am I Getting a

MySQL Trigger: Delete From Table AFTER DELETE - Syntax Error and Resolution

Apabila cuba mencipta pencetus untuk memadam baris daripada 'patron_info ' jadual selepas satu baris dipadamkan daripada jadual 'penaung', mesej ralat "Semak sintaks berhampiran TAMAT pada baris 6" mungkin ditemui. Ralat ini menunjukkan ralat sintaks dalam kod pencetus.

Kod pencetus yang disediakan pada masa ini mempunyai ralat sintaks dalam klausa WHERE pernyataan DELETE:

DELETE FROM patron_info
    WHERE patron_info.pid = patrons.id
Salin selepas log masuk

Isu di sini ialah bahawa trigger merujuk jadual 'penaung' menggunakan alias 'penaung', yang hanya tersedia dalam blok BEGIN dan END pencetus. Untuk menyelesaikan masalah ini, kenyataan DELETE sebaliknya harus merujuk alias 'lama', yang mewakili baris yang dipadamkan daripada jadual 'penaung':

DELETE FROM patron_info
    WHERE patron_info.pid = old.id
Salin selepas log masuk

Dengan pembetulan ini, kod pencetus kini hendaklah:

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
    WHERE patron_info.pid = old.id;
END
Salin selepas log masuk

Selain itu, adalah penting untuk memastikan bahawa pernyataan PADAM berakhir dengan koma bernoktah (;) untuk menamatkan pernyataan. Apabila memasukkan kod pencetus dalam konsol, pembatas juga harus digunakan untuk menentukan sempadan pencetus.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Semak Sintaks Hampir TAMAT pada Baris 6\' Semasa Mencipta Pencetus MySQL untuk Padam Dari Jadual Selepas PADAM?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!