Pour ajouter une colonne à une table existante avec sqlite il faut utiliser la commande Sqlite: ALTER TABLE:
ALTER TABLE NomTable ADD COLUMN NomNouvelleColonne ColonneType
En reprenant l'exemple de Créer une base de données et une table avec sqlite3 de python, voici un exemple simple de modification d'une table en passant par python et sqlite3:
import sqlite3CreateDataBase = sqlite3.connect(':memory:')QueryCurs = CreateDataBase.cursor()def CreateTable():QueryCurs.execute('''CREATE TABLE Clients(id INTEGER PRIMARY KEY, Nom TEXT,Rue TEXT,Ville TEXT, Region TEXT, Note REAL)''')def AddEntry(Nom,Rue,Ville,Region,Note):QueryCurs.execute('''INSERT INTO Clients (Nom,Rue,Ville,Region,Note)VALUES (?,?,?,?,?)''',(Nom,Rue,Ville,Region,Note))CreateTable()AddEntry('Toto','Rue 1','Lille','Nord',105.2)AddEntry('Bill','Rue 2','Fourmies','Nord',105.2)AddEntry('Ben','Rue 3','Lille','Nord',105.2)AddEntry('Paul','Rue 4','Lille','Nord',105.2)CreateDataBase.commit()QueryCurs.execute('SELECT * FROM Clients')for i in QueryCurs:print "\n"for j in i:print j#---------- Add Column to Table Client ----------#QueryCurs.execute('ALTER TABLE Clients ADD COLUMN Age INTEGER')QueryCurs.execute('SELECT * FROM Clients')for i in QueryCurs:print "\n"for j in i:print jQueryCurs.close()
qui donne:
1TotoRue 1LilleNord105.2None2BillRue 2FourmiesNord105.2None3BenRue 3LilleNord105.2None4PaulRue 4LilleNord105.2None
Note: pour avoir une valeur par défaut il faut utiliser la commande (par exemple 10 pour l'age):
QueryCurs.execute('ALTER TABLE Clients ADD COLUMN Age INTEGER default 10')
Recherches associées
| Liens | Site |
|---|---|
| sqlite | sqlite soc |
| SQLite - ALTER TABLE Command | tutorialspoint |
| Creating, dropping, and altering tables in SQLite | zetcode |
| Insert new column into table in sqlite ? | stackoverflow |
| How to add default value in SQLite? | stackoverflow |
