Jump to content

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.

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"