我正在写SQL数据库中的行,
但有时会有一个新功能尚未成为SQL数据库中的一列,因此我收到错误。
有没有办法在SQL中写入一行并自动添加新列(如果它尚不存在?)
答案 0 :(得分:0)
使用Python,您可以执行以下操作:
def add_column_to_table(c, table_name, column_name, column_type):
for row in c.execute('PRAGMA table_info({})'.format(table_name)):
if row[1] == column_name:
# print('column {} already exists in {}'.format(column_name, table_name))
break
else:
# print('add column {} to {}'.format(column_name, table_name))
c.execute('ALTER TABLE {} ADD COLUMN {} {}'.format(table_name, column_name, column_type))
c = db.cursor()
add_column_to_table(c, 'mytable', 'newcolumn', 'INTEGER')
答案 1 :(得分:0)
假设表格名称为MY_TABLE 并且需要添加默认值= 0的BLOB列MY_COLUMN
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 ')