多次运行'创建表...'是否安全?

时间:2010-09-10 23:57:32

标签: sqlite

我有一个解析器,它将XML文件解析为SQLite数据库,当前的实现生成'create table xyz ...',即使该表已经存在。

  • 这样好吗?我的意思是,即使表中存在db?
  • ,也可以运行'create table'
  • 如果没有,有没有简单的方法来检查SQLite数据库的表名(及其内容)?

3 个答案:

答案 0 :(得分:4)

您要搜索的是CREATE TABLE IF NOT EXISTS和常见问题条目How do I list all tables/indices contained in an SQLite database

创建没有“IF NOT EXISTS”选项的表将导致错误。

答案 1 :(得分:1)

您可以DROP TABLE CREATE TABLE之前DROP TABLE,您可以安全TABLE不存在,那么您不必在DROP之前检查{{1}}是否存在

答案 2 :(得分:1)

SQLite有一个“IF NOT EXISTS”子句,因此您可以在数据库中抛出“CREATE TABLE”,如果它已经存在,它将忽略它。例如:

CREATE TABLE IF NOT NOT EXISTS mytable(id INTEGER);

有关此文档的URL位于:http://www.sqlite.org/lang_createtable.html