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

perbarui kolom tabel setelah memasukkan catatan baru menggunakan pemicu MySQL

Cara Anda mencoba menetapkan nilai ke kolom adalah pembaruan. Karena Anda melakukannya setelah memasukkan operasi selesai.

Anda sebenarnya membutuhkan before pemicu.

Dan untuk menetapkan nilai tambahan otomatis yang sama dari kolom kunci utama dari tabel yang sama, Anda sebaiknya mendapatkannya dari information_schema.tables .

Contoh :

delimiter //
drop trigger if exists bi_table_name //

create trigger bi_table_name before insert on table_name
for each row begin
  set @auto_id := ( SELECT AUTO_INCREMENT 
                    FROM INFORMATION_SCHEMA.TABLES
                    WHERE TABLE_NAME='table_name'
                      AND TABLE_SCHEMA=DATABASE() ); 
  set new.priority= @auto_id;
end;
//

delimiter ;

Catatan :Pastikan Anda tidak memiliki pemicu yang telah ditentukan sebelumnya dengan nama dan/atau tindakan yang sama. Jika ada, lepaskan sebelum membuat yang baru.

Pengamatan :
Sesuai dokumentasi mysql di last_insert_id() ,

karenanya, tergantung pada last_insert_id() dan auto_increment nilai bidang dalam sisipan batch tampaknya tidak dapat diandalkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sistem Referensi Pengguna menggunakan PHP dan MySQL

  2. Bagaimana cara menambahkan cap tanggal dan waktu ke INSERT melalui PHP dengan mySQL?

  3. Haruskah saya menggunakan tipe data datetime atau timestamp di MySQL?

  4. Pertanyaan PHP:Bagaimana cara memperbaiki pernyataan if/elseif ini

  5. mysql group_concat tidak membawa seluruh data