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

Di pemicu MySQL, apakah mungkin untuk mengatur variabel pengguna dengan NEW.col dan menggunakannya dalam permintaan pembaruan?

Ini tidak mungkin seperti yang dijelaskan dengan sql dinamis / Pernyataan yang Disiapkan. Ini akan menghasilkan Error Code: 1336. Dynamic SQL is not allowed in stored function or trigger pada upaya untuk bahkan CREATE TRIGGER .

Hal yang paling dekat dengan otomatisasi adalah dengan menggunakan CREATE EVENT . Acara adalah program tersimpan terjadwal yang berjalan pada jadwal / Interval yang Anda pilih. Intervalnya adalah:

Anda dapat mengatur "bendera" sehingga untuk berbicara berturut-turut, seperti tabel yang Anda gambarkan di atas yang memiliki pemicu Setelah Sisipkan. Acara kemudian dapat melakukan Pernyataan yang Disiapkan secara dinamis dan jalankan.

Lihat jawaban saya di sini di Manajemen Acara .

Saya harus mengatakan bahwa bahkan jika dijalankan dalam suatu acara, apa yang Anda usulkan hampir Selalu tanda desain skema yang buruk yang tidak akan bertahan dengan baik untuk ditinjau oleh rekan sejawat.

Alasan mengapa sql dinamis dan Stmt yang Disiapkan tidak diizinkan adalah karena pemicunya harus cepat, dan bahkan DDL dapat diselipkan ke dalam string dan dieksekusi. Dan DDL stmts seperti ALTER TABLE tidak diizinkan dalam pemicu (bisa memakan waktu berjam-jam untuk dijalankan secara harfiah).

Skema Anda juga dapat membagi satu tabel dengan kolom ven_code menjadi kolom pembeda. Sebagai gantinya, Anda memilih untuk membuat tabel baru untuk setiap ven_code . Itu biasanya merupakan pilihan desain dan kinerja yang buruk.

Jika Anda memerlukan bantuan dengan desain skema, saya akan dengan senang hati membicarakannya dengan Anda di ruang obrolan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan perbedaan antara dua tabel?

  2. Tampilkan transaksi terbuka di MySQL

  3. Terapkan penyatuan Koneksi di JDBC menggunakan Apache dbcp

  4. Bagaimana cara aplikasi Android mengakses MySQL?

  5. Gunakan kunci utama sensitif aksen di MySQL