sql >> Databáze >  >> RDS >> Sqlserver

Jak se vyhnout duplicitním hodnotám v SQL Server

To předpokládá, že máte SQL Server 2012 (upřesněte)

Není to úplná odpověď, ale mohu to rozšířit, pokud si přejete.

Nejprve vytvořte sekvenci (stačí ji spustit jednou):

create sequence CustomerCare 
    as integer
    start with 51
    increment by 1
    minvalue 51
    maxvalue 350
    cycle;

nyní z něj získejte další sekvenci (spouštějte ji, jak často chcete):

select next value for CustomerCare

Tato metoda nemůže předat stejné číslo dvěma různým žádostem, takže nezískáte duplikáty. Když se dostane na 350, automaticky se zalomí. Můžete vytvářet a používat sekvence pro vaše další seskupení. Mnohem jednodušší než jiné řešení a 100% spolehlivé.

Znovu musím varovat před vytvářením magických číselných rozsahů pro konkrétní skupiny.



  1. Změňte nebo nastavte hodnotu dlouhé doby dotazu MySQL pro pomalé dotazy

  2. Vraťte pole PostgreSQL UUID jako seznam pomocí psycopg2

  3. MySQL používá jiný index v závislosti na limitní hodnotě s dotazem ORDER BY

  4. optimalizovat tabulky pro vyhledávání pomocí klauzule LIKE v MySQL