sql >> Databáze >  >> RDS >> Mysql

Doctrine 2 @Gedmo\SoftSmazatelná a jedinečná pole

Víte, co znamená „soft delete“? To znamená, že každá operace "delete" bude převedena na SQL, která nastaví pouze nějaké deleted příznak na true . A pokud vložíte další řádek se stejnou hodnotou jedinečného pole, které má měkký smazaný řádek, dostanete tuto zprávu.

Tento problém můžete vyřešit dvěma způsoby:

  • Vytvořte svůj jedinečný index se dvěma sloupci:původní jedinečné pole a deleted vlajka. Pak se tato chyba zobrazí pouze tehdy, když se pokusíte přidat řádek s existujícími jedinečnými hodnotami polí pouze pro ne zcela vymazané.
  • Vyhněte se tomuto porušení:měli byste vyloučit možnost přidat řádek, který duplikuje jiný řádek v jedinečných polích.

Druhý je IMHO nejlepší přístup.



  1. Vložte perskou hodnotu do tabulky s php kódem

  2. Potřebuji při připojování k více databázím více objektů SQLAlchemy Metadata, Base nebo Session?

  3. Vrátit parametry uložené procedury nebo uživatelem definované funkce na serveru SQL (příklady T-SQL)

  4. Zkontrolujte aktuální hodnotu FOREIGN_KEY_CHECKS