Saya memiliki instruktur tabel dan saya ingin menghapus catatan yang memiliki gaji dalam kisaran Cara yang intuitif seperti ini:
delete from instructor where salary between 13000 and 15000;
Namun, dalam mode aman, saya tidak dapat menghapus rekaman tanpa memberikan kunci utama (ID).
Jadi saya menulis sql berikut:
delete from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
Namun, ada kesalahan:
You can't specify target table 'instructor' for update in FROM clause
Saya bingung karena saat saya menulis
select * from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
itu tidak menghasilkan kesalahan.
Pertanyaanku adalah:
- apa sebenarnya arti pesan kesalahan ini dan mengapa kode saya salah?
- bagaimana cara menulis ulang kode ini agar berfungsi dalam mode aman?
Terima kasih!