Faq/Base/127/da

    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.

    Hvordan kan jeg genstarte fortløbende nummerering af primærnøglen?

    Kontekst:
    I et forløb med tilføjelser og sletninger af rækker i en tabel vil primærnøglernes værdier blive ikke-fortløbende. Selv om dette har lille eller ingen indvirkning på selv database-operatioenen, vil du måske genoprette fortløbende nummerering.

    • Denne FAQ behandler ikke det tilfælde, hvor en eller flere relationer er blevet defineret med denne nøgle til at kæde denne tabel sammen med andre tabeller, når disse data også findes i disse tabeller. Selvfølgelig vil du i dette tilfælde være nødt til at ændre data også i de andre tabeller eller relationerne mellem tabellerne vil blive brudt.
    • Udover dette ubehandlede tilfælde er der disse situationer:

    Primærnøglen er autogenereret og tabellen indeholder ikke data

    • Kør følgende SQL-kommando via menuen Funktioner ▸ SQL

    ALTER TABLE 'tablename' ALTER COLUMN 'primary key name' RESTART WITH 1

    Primærnøglen er autogenereret og tabellen indeholder data

    Udgangspunkt: ikke-fortløbende nummerering
    • Opret følgende nummerering: Tabellen indeholder for eksempel 20 rækker, i det du fjerner den sidste række, genstarter du nummereringen fra 15.

    Brug SQL-kommandoen ovenfor, mens du ændrer startværdien til 15.

    • Omnummerer fuldstændig (med ændring af de eksisterende primærnøgler): brug guiden Kopier tabel. Kopier-og-indsæt tabellen eller flyt den en smule med musen: guiden åbnes.
    1. Giv tabellen et nyt navn
    2. Vælg indstillingen Struktur og data og klik på Næste
    3. Marker alle felter undtagen primærnøglen
    4. Klik på Opret. LibreOffice foreslår oprettelse af en primærnøgle: vælg Nej
    5. Der oprettes en ny tabel. Modificer den ved at tilføje primærnøgle-felt, autogenerer værdien og gem.
    • Ovenstående proces i billeder:
    Genoprettelse af primærnøgle
    Guiden Tabelkopiering 1
    Guiden Tabelkopiering 2
    Guiden Tabelkopiering 3

    Primærnøglen er ikke defineret som autogenereret og tabellen indeholder ikke data

    • Ændring er ikke nødvendig: feltet kan redigeres og kan have enhver ønsket værdi.

    Primærnøglen er ikke defineret som autogenereret og tabellen indeholder data

    Eftersom primærnøglen ikke er genereret automatisk, genererer systemet ikke værdier fortløbende eller på nogen anden måde. Vi kan imidlertid oprette en tæller til den i en SQL-kommando, udført gennem menuen Funktioner ▸ SQL

    Brug af en tæller
    Udgangspunkt: Ikke-fortløbende, ikke-automatisk nummerering
    Udfør gennem Utils ▸ SQL
    Resultat
    • SQL-kommando:

    CREATE SEQUENCE NUMENREG AS INTEGER

    UPDATE "T_A" SET ID = NEXT VALUE FOR "NUMENREG" 
    DROP SEQUENCE "NUMENREG"