Domande frequenti - Base

    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.

    Come posso riavviare la numerazione continua per una chiave primaria?

    • Contesto: nel corso di aggiunte ed eliminazioni di righe in una tabella i valori numerici della chiave primaria diventeranno non sequenziali. Sebbene ciò abbia un impatto minimo o nullo sull'operazione del database stesso, è possibile ripristinare la numerazione continua.
    • Questa FAQ non considera l'istanza in cui una o più relazioni sono state definite usando questa chiave per collegare questa tabella ad altre tabelle, quando questi dati saranno presenti anche in quelle tabelle. Naturalmente, in quel caso, dovrete modificare anche i dati nelle altre tabelle o le relazioni tra le tabelle verranno interrotte.
    • A parte questo caso non considerato, si presentano varie situazioni:

    La chiave primaria viene generata automaticamente e la tabella non include i dati

    • Eseguire il seguente comando SQL dal menu "Utilità -> SQL"
    ALTER TABLE 'tablename' ALTER COLUMN 'primary key name'  RESTART WITH 1

    La chiave primaria viene generata automaticamente e la tabella contiene dati

    Starting situazione: numerazione non continua
    • Create la seguente numerazione: la tabella contiene 20 righe, ad esempio rimuovendo l'ultima riga, riavviando la numerazione su 15.
    Utilizzate il comando SQL sopra, modificando il valore iniziale su 15.
    • Rinumerazione completa (modifica delle chiavi esistenti): utilizzate la procedura guidata "copia tabella".
    Copiate e incollate la tabella o spostatela leggermente con il mouse: apparirà la procedura guidata.
    1. Fornite un nuovo nome per la tabella
    2. Scegliete l'opzione Struttura e dati, fate clic su Avanti
    3. Selezionate tutti i campi tranne la chiave primaria
    4. Fate clic su Crea. LibreOffice suggerirà di creare una chiave primaria: scegliete No
    5. La nuova tabella è stata creata. Modificatela aggiungendo un campo chiave primaria, generate automaticamente il valore, salvate.
    • Il processo sopra descritto per immagini:
    Ricreazione della chiave primaria
    Procedura guidata per la copia di tabella 1
    Procedura guidata per la copia di tabelle 2
    Procedura guidata per la copia di tabelle 3

    La chiave primaria non è definita come generata automaticamente e i dati non contengono alcun dato

    • Non è richiesta alcuna modifica: il campo è modificabile e può avere qualsiasi valore desiderato.

    La chiave primaria non è definita come generata automaticamente e la tabella contiene dati

    • Poiché la chiave primaria non viene generata automaticamente, il sistema non genera valori, sequenziali o di altro tipo. Tuttavia, possiamo creare un contatore per questo in un comando SQL eseguito dal menu Utilità > SQL
    Uso di un contatore
    Punto di partenza: numerazione non sequenziale non sequenziale
    Eseguire dal menu Utilità > SQL
    Risultato
    • Commando SQL:
    CREATE SEQUENCE NUMENREG AS INTEGER
    UPDATE "T_A" SET ID = NEXT VALUE FOR "NUMENREG"
    DROP SEQUENCE "NUMENREG"