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

Doctrine 2 @Gedmo\SoftDeleteable dan bidang yang unik

Apakah Anda tahu apa artinya "penghapusan lunak"? Ini berarti bahwa setiap operasi "hapus" akan dikonversi ke SQL yang hanya mengatur beberapa deleted tandai ke true . Dan jika Anda akan menyisipkan baris lain dengan nilai bidang unik yang sama dengan baris yang dihapus, Anda akan mendapatkan pesan ini.

Anda memiliki dua cara untuk menyelesaikan masalah ini:

  • Buat indeks unik Anda dengan dua kolom:bidang unik asli Anda dan deleted bendera. Kemudian Anda akan mendapatkan kesalahan ini hanya ketika Anda mencoba menambahkan baris dengan nilai bidang unik yang ada hanya untuk tidak dihapus sementara.
  • Hindari membuat pelanggaran ini:Anda harus mengecualikan kemungkinan untuk menambahkan baris yang menduplikasi baris lain di bidang unik.

Yang kedua adalah pendekatan IMHO terbaik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL yang menghitung jumlah parsial

  2. AJAX memperbarui database MYSQL menggunakan fungsi yang dipanggil dari HTML yang dihasilkan dari PHP

  3. Tabel Sementara Tidak Berfungsi di PHPMyAdmin

  4. MySql :Pesan oleh dan Grup Dengan menggabungkan tidak memberikan catatan terbaru

  5. Buat database mysql dan pengguna dalam skrip bash