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.