Question

Comment puis-je ajouter une colonne supplémentaire à une table de base de données SQLite 2 existantes qui ont des données et des indices qui y sont associés.

Il semble que le SQL alter table pour ce n'est pas disponible dans sqlite2?

Était-ce utile?

La solution

De la SQLite FAQ :

SQLite a un soutien limité ALTER TABLE que vous pouvez utiliser pour ajouter une colonne à la fin d'une table ou de changer le nom d'une table. Si vous souhaitez apporter des modifications plus complexes dans la structure d'une table, vous devrez recréer la table. Vous pouvez enregistrer les données existantes à une table temporaire, laissez tomber la vieille table, créer la nouvelle table, puis copiez les données de retour à partir de la table temporaire.

Par exemple, supposons que vous avez une table nommée « t1 » avec les noms de colonnes « a », « b » et « c » et que vous voulez supprimer la colonne « c » de ce tableau. Les étapes suivantes illustrent comment cela pourrait se faire:

BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;

Autres conseils

Il pourrait ne pas être - sqlite3 a été pendant un certain temps. Vous devrez créer un autre DB avec la table comme vous le souhaitez et copier les données à elle. Ou, créer une nouvelle table, copier les données, laissez tomber l'original et le remplacer par le nouveau.

Ne pas oublier que DROP TABLE gouttes également associée triggers.

Avant que vous allez modifier la table, utilisez la commande

.scheme TABLE_TO_MODIFY

qui décharge toutes les déclarations actuelles qui seront supprimés, y compris les éléments déclencheurs que vous devez recréer.

Cheers,

Elixon

Vous ne le faites pas. modification non triviale de tables ne sont pas pris en charge. Ce que vous devez faire est:

  1. Copiez les données sur une table temporaire déposer l'ancien
  2. créer la nouvelle table
  3. Copiez les données de votre table d'origine à ce
  4. Créer la nouvelle table
  5. Copiez les données de température dans la nouvelle table
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top