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

Jak a proč přidat primární klíče do tabulky databáze SQL, když už mám index

Primární klíč je omezení, které určuje, že hodnoty v jeho sloupcích musí být (vzájemně) jedinečné a nikoli prázdné. To proto, aby bylo zaručeno, že bude jednoznačně identifikován každý řádek v tabulce, což je nejužitečnější, když chcete vytvořit cizí klíče, které odkazují na tuto tabulku. Stále se vyplatí mít, pokud nemáte jiné tabulky, protože zabrání tomu, aby se váš stůl dostal do špatného stavu, kdy například máte k určitému datu více než jednu stejnou zdrojovou hodnotu.

Pole primárního klíče budou mít téměř vždy index a také se často používají pro vyhledávání a JOINy, ale tyto dva koncepty jsou oddělené.

Některé DBMS (např. MySQL, SQL Server) automaticky vytvářejí seskupený index na primárním klíči, což znamená, že data v tabulce jsou na disku řazena podle polí obsahujících primární klíč, aby byly běžné operace výše ještě rychlejší. Postgres to však ve výchozím nastavení nedělá.

Primární klíč při vytváření tabulky můžete zadat pomocí následující syntaxe:

create table datatable 
(
    date date, 
    yesterday real, 
    today real, 
    tomorrow real, 
    reading real, 
    source varchar,
    PRIMARY KEY (source, date)
)

Můžete také přidat nové, automaticky se zvyšující celočíselné pole, které bude fungovat jako váš primární klíč (obecně označovaný jako náhradní klíč nebo umělý klíč ). Možná to budete chtít udělat, pokud ve svých datových položkách nemáte žádné další vhodné kandidáty, ale může to mít i další výhody (například potenciálně rychlejší JOINy).

create table datatable 
(
    id serial primary key,
    date date, 
    yesterday real, 
    today real, 
    tomorrow real, 
    reading real, 
    source varchar
)



  1. Odstraňte duplikáty pomocí funkce Oracle LISTAGG

  2. Problémy s výkonem parametrů tabulky

  3. Podřetězec T-SQL - oddělující jméno a příjmení

  4. Spojení tabulek na více serverech