Rumah > pangkalan data > tutorial mysql > Mengapa Penciptaan Acara MySQL Saya Gagal dengan 'Anda mempunyai ralat dalam sintaks SQL anda'?

Mengapa Penciptaan Acara MySQL Saya Gagal dengan 'Anda mempunyai ralat dalam sintaks SQL anda'?

Patricia Arquette
Lepaskan: 2024-11-09 22:47:02
asal
794 orang telah melayarinya

Why Is My MySQL Event Creation Failing with

Menyelesaikan Masalah Ralat Acara MySQL Menggunakan PHP

Ralat Asal:

Apabila cuba mencipta acara MySQL menggunakan skrip PHP , ralat berlaku:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER' at line 1 
Salin selepas log masuk

Penyelesaian:

Mesej ralat menunjukkan bahawa sintaks yang digunakan untuk mencipta acara adalah tidak betul. Sintaks yang betul untuk mencipta acara ialah:

CREATE EVENT event_name
ON SCHEDULE [EVERY | AT] schedule
[ON COMPLETION [PRESERVE | NOT PRESERVE]]
DO
  statement(s);
Salin selepas log masuk

Dalam ralat asal, pernyataan "DELIMITER" telah digunakan secara salah. Sintaks yang betul ialah:

CREATE EVENT myevent21222
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
DO
  BEGIN
    UPDATE `team` SET `reg` = '0' WHERE `id` = '1';
  END
Salin selepas log masuk

Alternatif untuk Menukar Data Pangkalan Data Selepas 5 Minit:

Jika menggunakan acara untuk menukar data pangkalan data bukan pilihan, ada adalah cara lain untuk mencapai fungsi ini:

  • Cron job: Cipta tugas cron yang akan menjalankan pernyataan SQL yang diperlukan setiap 5 minit.
  • Perkhidmatan latar belakang: Bangunkan perkhidmatan latar belakang yang akan bertanggungjawab untuk memantau pangkalan data dan melaksanakan kemas kini yang diperlukan apabila diperlukan.
  • Pencetus: Sediakan pencetus pada jadual yang akan melaksanakan pernyataan SQL yang diperlukan apabila syarat yang ditentukan dipenuhi (cth., 5 minit selepas tindakan pengguna).

Pengaktifan Pengendali Acara:

Untuk memastikan acara dilaksanakan, pengendali acara mesti dihidupkan menggunakan pernyataan berikut:

SET GLOBAL event_scheduler = ON;
Salin selepas log masuk

Anda boleh mengesahkan bahawa pengendali acara didayakan dengan menyemak nilai Pembolehubah 'event_scheduler':

SHOW VARIABLES WHERE VARIABLE_NAME='event_scheduler';
Salin selepas log masuk

Nota Tambahan:

  • Klausa ON COMPLETION menyatakan perkara yang perlu berlaku selepas acara selesai dilaksanakan. Pilihan PRESERVE bermakna acara akan terus wujud selepas pelaksanaannya, manakala pilihan NOT PRESERVE bermakna acara akan dipadamkan sebaik sahaja ia selesai dilaksanakan.
  • Pernyataan ALTER EVENT boleh digunakan untuk melumpuhkan atau mendayakan satu acara.

Atas ialah kandungan terperinci Mengapa Penciptaan Acara MySQL Saya Gagal dengan 'Anda mempunyai ralat dalam sintaks SQL anda'?. 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