我需要在python中执行一个SQL查询,在sqlite3中添加一个新列.
问题是有时它已经存在.因此,在执行查询之前,我需要检查列是否已存在.
如果是,那么我将不执行查询.
在sqlite中有没有办法做到这一点?或者我必须通过python代码中的try-catch块来实现它?
非常感谢提前!
您可以通过以下语句获取表的列列表:
PRAGMA table_info('table_name');
有关pragma命令的更多详细信息,请访问sqlite网站
IMO这个
conn = sqlite3.connect(':memory:') c = conn.cursor() try: c.execute('ALTER TABLE mytable ADD COLUMN newcolumn;') except: pass # handle the error c.close()
是比构造特殊情况查询更好的选择.
您可以将上面的代码包装在AddColumn(游标,表,列)函数中,这样您就可以重用它,
并且它会使代码更具可读性.