Ya. Seperti yang Anda temukan, nilai id belum dibuat di pemicu BEFORE INSERT. Tetapi Anda tidak dapat mengubah nilai NEW.thread Anda di pemicu AFTER INSERT.
Anda tidak dapat mengandalkan membaca INFORMATION_SCHEMA, karena Anda dapat menyebabkan kondisi balapan.
Anda hanya perlu melakukan INSERT, lalu segera jalankan:
UPDATE comments SET thread=id WHERE id=LAST_INSERT_ID() AND thread IS NULL;
Jika itu komentar root.
Lihat juga jawaban saya sebelumnya tentang topik serupa:
- Menggabungkan string dan ID kunci utama saat memasukkan
- Dua kolom peningkatan otomatis atau peningkatan otomatis dan nilai yang sama di kolom lain