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

Di MySQL, bisakah saya mengembalikan baris yang dihapus setelah penghapusan?

MySQL tidak memiliki yang setara dengan output atau returning klausa yang disediakan oleh database lain. Taruhan terbaik Anda adalah meja sementara:

CREATE TABLE TheDeletedIds as
    SELECT t1.id
    FROM t1 LEFT JOIN
         t2 
         ON t1.t2_id = t2.id
    WHERE t2.id IS NULL OR t2.is_valid = false;

DELETE t1
    FROM t1
    WHERE t1.id IN (SELECT id FROM TheDeletedIds);

Kemudian tabel yang baru saja Anda buat memiliki id yang Anda inginkan.

Catatan:Penting untuk menggunakan tabel yang baru dibuat untuk penghapusan. Jika tidak, utas/proses lain dapat mengubah data antara saat Anda mengambil id dan saat Anda menghapusnya.



  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 menghindari kesalahan fungsi agregat tidak diperbolehkan di WHERE

  2. Bagaimana Mengonversi Tanggal UTC Ke Zona Waktu Lokal di MySql Select Query

  3. Bagaimana Memperbaiki Kesalahan Koneksi Database MySQL JDBC 08001

  4. Bagaimana cara memilih 'string' terpanjang dari tabel saat mengelompokkan

  5. MySQLi gagal menyiapkan pernyataan