如果列没有';追加表时不存在(python)

如果列没有';追加表时不存在(python),python,sqlite,pandas,Python,Sqlite,Pandas,我在写SQL数据库中的行 然而,有时有一个新特性还不是SQL数据库中的一列,因此我得到一个错误 有没有一种方法可以将一行写入SQL并在它还不存在时自动添加一个新列?使用Python,您可以执行以下操作: def将列添加到表(c,表名,列名,列类型): 对于c.execute('PRAGMA table_info({}').format(table_name))中的行: 如果行[1]==列名称: #print({}列已经以{}格式存在(列名称、表名称)) 打破 其他: #打印('addcolumn

我在写SQL数据库中的行

然而,有时有一个新特性还不是SQL数据库中的一列,因此我得到一个错误


有没有一种方法可以将一行写入SQL并在它还不存在时自动添加一个新列?

使用Python,您可以执行以下操作:

def将列添加到表(c,表名,列名,列类型):
对于c.execute('PRAGMA table_info({}').format(table_name))中的行:
如果行[1]==列名称:
#print({}列已经以{}格式存在(列名称、表名称))
打破
其他:
#打印('addcolumn{}to{}'。格式(column_name,table_name))
c、 execute('ALTER TABLE{}ADD COLUMN{}'。格式(表名称、列名称、列类型))
c=db.cursor()
将列添加到表(c,'mytable','newcolumn','INTEGER')

使用Python,您可以执行以下操作:

def将列添加到表(c,表名,列名,列类型):
对于c.execute('PRAGMA table_info({}').format(table_name))中的行:
如果行[1]==列名称:
#print({}列已经以{}格式存在(列名称、表名称))
打破
其他:
#打印('addcolumn{}to{}'。格式(column_name,table_name))
c、 execute('ALTER TABLE{}ADD COLUMN{}'。格式(表名称、列名称、列类型))
c=db.cursor()
将列添加到表(c,'mytable','newcolumn','INTEGER')

假设表名为MY_table 您需要添加BLOB列MY_列,默认值为0

hasColumn = 0
for row in self.conn.execute('PRAGMA table_info(MY_TABLE)'):
    if row[1] == 'MY_COLUMN':
        hasColumn = 1
        break


    if(hasColumn == 1):
        self.conn.execute('ALTER TABLE MY_TABLE ADD COLUMN MY_COLUMN BLOOB DEFAULT 0 ')


假设表名是MY_表 您需要添加BLOB列MY_列,默认值为0

hasColumn = 0
for row in self.conn.execute('PRAGMA table_info(MY_TABLE)'):
    if row[1] == 'MY_COLUMN':
        hasColumn = 1
        break


    if(hasColumn == 1):
        self.conn.execute('ALTER TABLE MY_TABLE ADD COLUMN MY_COLUMN BLOOB DEFAULT 0 ')


您需要更改表以添加列。这可以在SQL中完成,如果不存在。。。其他的或case语句。您需要更改表以添加列。这可以在SQL中完成,如果不存在。。。其他的或者一个案例陈述。