Nejčastější dotazy/Base/127

    From The Document Foundation Wiki
    < Faq‎ | Base
    This page is a translated version of the page Faq/Base/127 and the translation is 100% complete.
    Other languages:

    Jak mohu znovu spustit průběžné číslování pro primární klíč?

    • Kontext: V průběhu přidávání a mazání řádků v tabulce se číselné hodnoty primárního klíče stanou nesouvislými. Ačkoli to má na samotnou databázovou operaci malý nebo žádný vliv, můžete si přát obnovit průběžné číslování.
    • Tento často kladený dotaz nebere v úvahu případ, kdy byl pomocí tohoto klíče definován jeden nebo více vztahů pro propojení této tabulky s jinými tabulkami, pokud tato data budou existovat i v těchto tabulkách. V takovém případě samozřejmě budete muset změnit data i v ostatních tabulkách, jinak budou vztahy mezi tabulkami porušeny.
    • Kromě tohoto neuvažovaného případu dochází k různým situacím:

    Primární klíč je vygenerován automaticky a tabulka neobsahuje data

    • Proveďte následující příkaz SQL prostřednictvím nabídky "Nástroje -> SQL".
    ALTER TABLE 'název_tabulky' ALTER COLUMN 'název primárního klíče' RESTART WITH 1

    Primární klíč je vygenerován automaticky a tabulka obsahuje data

    Výchozí situace: nesouvislé číslování
    • Vytvořte následující číslování: tabulka obsahuje 20 řádků, například odstraníte poslední řádek, znovu číslování spustíte na 15.
    Použijte výše uvedený příkaz SQL a upravte počáteční hodnotu na 15.
    • Úplné přečíslování (změna stávajících klíčů): použijte průvodce "kopírovat tabulku".
    Zkopírujte a vložte tabulku nebo ji mírně posuňte myší: zobrazí se průvodce.
    1. Zadejte nový název tabulky
    2. Vyberte možnost Struktura a data, klikněte na Další
    3. Vyberte všechna pole kromě primárního klíče
    4. Klikněte na Vytvořit. LibreOffice navrhne vytvoření primárního klíče: zvolte Ne
    5. Je vytvořena nová tabulka. Upravte jej přidáním pole primárního klíče, automaticky vygenerujte hodnotu a uložte.
    • Výše uvedený proces v obrázcích:
    Obnovení primárního klíče
    Průvodce kopírováním tabulky 1
    Průvodce kopírováním tabulky 2
    Průvodce kopírováním tabulky 3

    Primární klíč není definován jako automaticky generovaný a data neobsahují žádná data

    • Není nutná žádná úprava: pole je upravitelné a může mít libovolnou požadovanou hodnotu.

    Primární klíč není definován jako automaticky generovaný a tabulka obsahuje data

    • Protože primární klíč není generován automaticky, systém negeneruje hodnoty, ať už sekvenční nebo jiné. Můžeme však vytvořit počítadlo v příkazu SQL prováděném prostřednictvím nabídky Nástroje > SQL
    Použití čítače
    Počáteční bod: nesekvenční neautomatické číslování
    Spuštěno v nabídce Nástroje > SQL
    Výsledek
    • SQL příkaz:
    CREATE SEQUENCE NUMENREG AS INTEGER
    UPDATE "T_A" SET ID = NEXT VALUE FOR "NUMENREG"
    DROP SEQUENCE "NUMENREG"