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.