sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu bezpečně předat sekvenci primárních klíčů v Django?

Protože jsem ještě nenašel "automatizovaný" způsob, jak to udělat, přemýšlím o následujícím řešení - v mé konkrétní situaci by to bylo možné:

  1. Nastavte sekvenci s MAXVALUE 49999 NO CYCLE
  2. Když je dosaženo 49999, při příštím save() dojde k chybě postgres
  3. Zachyťte tuto výjimku a znovu ji uveďte jako chybu formuláře „došla vám čísla, resetujte prosím na další blok a zkuste to znovu“
  4. Poskytnout zobrazení, kde může uživatel aktivovat další blok, tj. provést „ALTER SEQUENCE my_seq RESTART WITH 70000 MAXVALUE 89999“

Nelíbí se mi automatické restartování při zachycení výjimky:

try:
    instance.save()
except RunOutOfIdsException:
    restart_id_sequence()
    instance.save()

protože se obávám, že dvěma souběžným save() dojdou ID, což povede ke dvěma samostatným restartům a následnému porušení jedinečného omezení. (v podstatě stejný koncept jako původní problém)



  1. PGError:Chyba:sloupec vztahu neexistuje

  2. Jak mohu simulovat tiskový příkaz v MySQL?

  3. Název databáze Heroku postgresql

  4. Jak zvětším diagram EER v MySQL Workbench?