ALTER TABLE Sqlite: how to check if a column exists before alter the table?

前端 未结 3 2029
名媛妹妹
名媛妹妹 2021-01-02 23:59

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 ne

3条回答
  •  孤城傲影
    2021-01-03 00:34

    For any reason you want an explicitly way to check if a column is already present, you can find a full Python recipe below. Up to you to wrap the code in a function or improve it

    import sqlite3
    
    sqlite_db = 'my_sqlite_db.sqlite'
    col_to_test = 'my_column'
    table_to_test = 'my_table_name'
    
    con = sqlite3.connect(sqlite_db)
    check_sqlite_col_exist_query = """SELECT count(*) > 0
    FROM pragma_table_info('{}')
    WHERE name=?;""".format
    
    with con:
        q = con.execute(check_sqlite_col_exist_query(table_to_test), (col_to_test, ))
        col_exist = q.fetchone()
        col_exist = col_exist[0] > 0
        if not col_exist:
            print('"{}" column does not exist in table "{}"!'.format(col_to_test, table_to_test))
            # Do stuff here like adding your column or something else
        else:
            print('"{}" column already exist in table "{}"!'.format(col_to_test, table_to_test))
    

提交回复
热议问题