Mysql
 sql >> база данни >  >> RDS >> Mysql

Доктрина 2 @Gedmo\SoftDeleteable и уникални полета

Знаете ли какво означава "soft delete"? Това означава, че всяка операция "изтриване" ще бъде преобразувана в SQL, който задава само някои deleted флаг на true . И ако вмъкнете друг ред със същата стойност на уникално поле, което има меко изтрит ред, ще получите това съобщение.

Имате два начина да разрешите този проблем:

  • Направете своя уникален индекс с две колони:вашето оригинално уникално поле и deleted знаме. След това ще получите тази грешка само когато се опитате да добавите ред със съществуващите уникални стойности на полета само за неизтрито меко.
  • Избягвайте да правите това нарушение:трябва да изключите възможността за добавяне на ред, който дублира друг в уникални полета.

Вторият е най-добрият подход IMHO.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предаване на PHP променливи в MySQL

  2. MySQL:как да получите x брой резултати на групиране

  3. MySQL Не може да пусне индекс, необходим при ограничение на външен ключ

  4. Получаване на два проблема при използване на съхранена процедура в MySQL

  5. Doctrine Backuptables