phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Tidak dapat membuat PEMICU dari dalam rutinitas tersimpan lainnya -- Apa itu rutinitas tersimpan lainnya?

Pemicu yang Anda tunjukkan di atas baik-baik saja.

edit: Saat Anda membuat pemicu di GUI phpMyAdmin, Anda hanya perlu memasukkan isi pemicu di Definisi panel, dengan kata lain bagian BEGIN...END .

Ini karena phpMyAdmin akan mencoba menjadi pintar dan menulis header pemicu untuk Anda berdasarkan elemen lain yang Anda masukkan (nama, tabel, waktu, acara).

Berikut cara yang tepat untuk menentukan pemicu di phpMyAdmin:

Jika Anda menulis CREATE TRIGGER... header di dalam body, itu akan membingungkan MySQL karena akan melihat CREATE TRIGGER... CREATE TRIGGER... BEGIN...END . Ini membuat MySQL berpikir Anda mendefinisikan pemicu yang pernyataan pertamanya adalah CREATE TRIGGER .

Sebagai masalah sampingan dari pertanyaan awal Anda, saya menyarankan beberapa perubahan di badan pemicu:

CREATE TRIGGER Update_Last_Transit_Status AFTER INSERT ON Delivery 
FOR EACH ROW
BEGIN
  UPDATE Transportation
    INNER JOIN Transit ON Transit.Transportation_ID = Transportation.ID
    INNER JOIN Route ON Transit.ID = Route.Transit_ID
  SET Transportation.Status = 'Dispatched'
  WHERE Route.Delivery_ID = NEW.ID
    AND Transportation.Status = 'In Branch';
END

Perubahannya:

  • Referensi NEW.ID bukannya Delivery.ID .
  • Gunakan SQL-92 JOIN sintaks alih-alih SQL-89 "gaya koma" bergabung.
  • Gunakan multi-tabel UPDATE dengan gabungan, alih-alih EXISTS dengan subkueri yang berkorelasi.
  • Gunakan tanda kutip tunggal untuk string, bukan tanda kutip ganda.
  • Hentikan UPDATE pernyataan dengan titik koma.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. JDBC:terhubung ke database mySQL jarak jauh?

  2. MySQL mengurutkan berdasarkan kolom secara default di phpMyAdmin

  3. Bagaimana saya bisa mengotomatiskan ekspor database mySQL menggunakan phpMyAdmin

  4. cara menambahkan komposit unik ke kolom di tabel mysql

  5. Wamp phpMyAdmin error #1045 - Akses ditolak untuk pengguna 'root'@'localhost'