I need to execute in python a SQL query that adds a new column, in sqlite3.
The problem is that sometimes it already exists. So previous to executing the query I need to check if the column already exists.
If it does, then I won't execute the query.
Is there a way in sqlite to do that? Or do I have to make it through a try-catch block in python code?
Thanks a lot in advance!
Checking if Columns Exist in the SQLite Databasereturns an array of DataRows. If the column doesn't exist an array of length 0 will be returned, hence the . Length !=
You can get a list of columns for a table via the following statement:
PRAGMA table_info('table_name');
More details on the pragma commands are availabel at the sqlite web site
IMO this
conn = sqlite3.connect(':memory:')
c = conn.cursor()
try:
c.execute('ALTER TABLE mytable ADD COLUMN newcolumn;')
except:
pass # handle the error
c.close()
is a better choice than constructing special case queries.
You can wrap the above code in a AddColumn(cursor, table, column) function so you can reuse it,
plus it'll make the code more readable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With