我想在SQLite数据库中创建一个表,如果不存在的话。有什么办法可以做到吗?如果表存在,我不想删除它,如果不存在,只创建它。
从http://www.sqlite.org/lang_createtable.html:
CREATE TABLE IF NOT EXISTS some_table (id INTEGER PRIMARY KEY AUTOINCREMENT, ...);
我将尝试为这个非常好的问题增加价值,并在@David Wolever的精彩回答下的一条评论中以@BrittonKerin的问题为基础。想在这里分享,因为我有同样的挑战@BrittonKerin,我得到了一些工作(即只想运行一段代码,如果表不存在)。
# for completeness lets do the routine thing of connections and cursors
conn = sqlite3.connect(db_file, timeout=1000)
cursor = conn.cursor()
# get the count of tables with the name
tablename = 'KABOOM'
cursor.execute("SELECT count(name) FROM sqlite_master WHERE type='table' AND name=? ", (tablename, ))
print(cursor.fetchone()) # this SHOULD BE in a tuple containing count(name) integer.
# check if the db has existing table named KABOOM
# if the count is 1, then table exists
if cursor.fetchone()[0] ==1 :
print('Table exists. I can do my custom stuff here now.... ')
pass
else:
# then table doesn't exist.
custRET = myCustFunc(foo,bar) # replace this with your custom logic
推荐文章
- SQLite数据库文件使用什么扩展名重要吗?
- 无法加载DLL 'SQLite.Interop.dll'
- 快速简单的方法迁移SQLite3到MySQL?
- 在Ubuntu上安装sqlite3-ruby错误
- sqlite3。ProgrammingError:提供的绑定数量不正确。当前语句使用1,并提供了74个
- SQLite有。net / c#包装器吗?
- 如果不存在,创建表
- MySQL >表不存在。但它确实(或应该)
- Android开发有什么好的ORM工具吗?
- 如何在SQLite中看到表的结构?
- Android中使用的SQLite版本?
- 在SQL Server Management Studio中编辑表后保存更改
- 如何在不复制数据的情况下创建Oracle表的副本?
- Core Data vs SQLite 3
- 如何在SQLITE中删除或添加列?