Italian Aggiunta di un campo Id in sqlite

Fulvio75

Well-Known Member
Licensed User
Ciao, ho una tabella in SQLite già compilata con dei dati e non ho un Indice Es:Id
Ho creato questo Id a mano entrando in modifica tabella e ora nel campo Id per ogni record c'è scritto Null, questo Null deve diventare 1,2,3,4 ecc ecc quanti sono i records come faccio a inserire l'indice numerico?
Ho provato con UPDATE dove c'è Null ma non funziona
 

NikB4x

Member
Licensed User
Longtime User
Ciao, credo che la soluzione migliore sia quella di creare un'altra tabella identica, ma con il campo Id autoincrementale e copiare tutti i dati dalla vecchia tabella, una volta fatto, cancellare la vecchia e rinominare la nuova. A questo punto ti trovi il lavoro fatto automaticamente.
Praticamente una cosa di questo tipo:

CREATE TABLE nuovatabella (id integer primary key autoincrement, campo1 text, campo2 text, campo3 text);

INSERT INTO nuovatabella(campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM vecchiatabella;

DROP TABLE vacchiatabella;

ALTER TABLE nuovatabella RENAME TO vecchiatabella;

Saluti
 

Fulvio75

Well-Known Member
Licensed User
Ciao, credo che la soluzione migliore sia quella di creare un'altra tabella identica, ma con il campo Id autoincrementale e copiare tutti i dati dalla vecchia tabella, una volta fatto, cancellare la vecchia e rinominare la nuova. A questo punto ti trovi il lavoro fatto automaticamente.
Praticamente una cosa di questo tipo:

CREATE TABLE nuovatabella (id integer primary key autoincrement, campo1 text, campo2 text, campo3 text);

INSERT INTO nuovatabella(campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM vecchiatabella;

DROP TABLE vacchiatabella;

ALTER TABLE nuovatabella RENAME TO vecchiatabella;

Saluti
Ok grazie
 

Fulvio75

Well-Known Member
Licensed User
Ma perché aggiungere un campo se in SQLite c'è già rowid che fa la stessa cosa?
Sarebbe diverso se volessi gestire il tuo campo ID in modo particolare. Oppure se un giorno il tuo SW dovesse usare un DBMS diverso.
Ok rowid cos'è una marca di colomba? Io mangio Tre Marie è più buona??
 

Fulvio75

Well-Known Member
Licensed User
O magari chiedi a ChatGPT, così se hai domande...!
Grazie capo.. è da sabato che lavoro, per me' non esistono festività per cui più che pigro sono un pochetto in.. ???
Meno male che ci sei tu che mi tieni su di morale???
 

LucaMs

Expert
Licensed User
Longtime User
Mi sa che non capisce io so l'italiano e il Milanese stop
Ciao, ho una tabella in SQLite già compilata con dei dati e non ho un Indice Es:Id
Ho creato questo Id a mano entrando in modifica tabella e ora nel campo Id per ogni record c'è scritto Null, questo Null deve diventare 1,2,3,4 ecc ecc quanti sono i records come faccio a inserire l'indice numerico?
Ho provato con UPDATE dove c'è Null ma non funziona

1711988085455.png


?
 

Fulvio75

Well-Known Member
Licensed User
Ciao, credo che la soluzione migliore sia quella di creare un'altra tabella identica, ma con il campo Id autoincrementale e copiare tutti i dati dalla vecchia tabella, una volta fatto, cancellare la vecchia e rinominare la nuova. A questo punto ti trovi il lavoro fatto automaticamente.
Praticamente una cosa di questo tipo:

CREATE TABLE nuovatabella (id integer primary key autoincrement, campo1 text, campo2 text, campo3 text);

INSERT INTO nuovatabella(campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM vecchiatabella;

DROP TABLE vacchiatabella;

ALTER TABLE nuovatabella RENAME TO vecchiatabella;

Saluti
Non funziona da errore

Risultato: row value misused
 

Fulvio75

Well-Known Member
Licensed User
Mi correggo funziona, ho sbagliato a mettere le parentesi in Select che non ci vogliono, i records sono stati aggiunti con gli Id

INSERT INTO nuovatabella(campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM vecchiatabella;
 

LucaMs

Expert
Licensed User
Longtime User
Mi correggo funziona, ho sbagliato a mettere le parentesi in Select che non ci vogliono, i records sono stati aggiunti con gli Id

INSERT INTO nuovatabella(campo1, campo2, campo3) SELECT campo1, campo2, campo3 FROM vecchiatabella;
Se c'è una cosa per la quale ChatGPT è utilissimo è la generazione di query (complesse).

Un'altra è la generazione di "espressioni regolari" (Regex).

Altro... ancora da vedere; se gli chiedi sorgenti in qualche linguaggio, non solo B4X, combina casini inenarrabili ?
 
Top