Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mySQL Trigger berfungsi setelah penyisipan konsol, tetapi tidak setelah penyisipan skrip

Saya pikir kemungkinan besar Anda mengalami kesalahan yang tidak tertangkap, daripada pemicunya tidak dieksekusi, terutama karena berhasil dijalankan dari konsol.

Anda perlu mengisolasi di mana kesalahan terjadi - di pemicu itu sendiri, atau di skrip panggilan.

Dalam skrip python Anda, cetak pernyataan SQL yang dikirim python ke MySQL untuk dieksekusi untuk memastikan bahwa itu dibangun seperti yang Anda harapkan - misalnya, jika NEW.type tidak sama dengan 'PRE', pemicu akan dieksekusi, tetapi tidak akan menghasilkan pembaruan apa pun.

Pastikan juga bahwa Anda memeriksa kesalahan pada sisipan. Saya bukan programmer python, jadi saya tidak bisa memberi tahu Anda bagaimana melakukannya, tetapi ini tampaknya menjadi apa yang Anda cari.

Jika tidak satu pun dari ini membawa Anda ke masalah, komentari seluruh if (NEW.type = 'PRE') THEN blokir dan lakukan modifikasi sederhana, seperti mengatur NEW.type ke 'debug'. Setelah memastikan bahwa pemicu benar-benar dijalankan, uji ulang secara berurutan dengan lebih banyak kode asli yang ditambahkan kembali sampai Anda mengisolasi masalahnya.

Juga, tulis komentar Marcos, saya akan terkejut jika skrip tidak dikomit secara otomatis setelah berhasil diselesaikan. Memang, saya akan membuat pernyataan ini tentang skrip/bahasa apa pun.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. COMMIT ATAU conn.setAutoCommit(true)

  2. Cara mengakses objek RowDataPacket

  3. Bagaimana cara mengisi celah tanggal di MySQL?

  4. Baris mana (diurutkan oleh beberapa kolom) dalam tabel yang sesuai dengan baris di tabel lain?

  5. Migrasi Doktrin Symfony, bagaimana saya bisa menggunakan beberapa manajer entitas