多次运行'create table ...'安全吗?

问题描述:

我有一个解析器将XML文件解析为SQLite数据库,当前实现生成'create table xyz ...',即使表已经存在。多次运行'create table ...'安全吗?

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

您在搜索的是CREATE TABLE IF NOT EXISTS和FAQ条目How do I list all tables/indices contained in an SQLite database

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

可以DROP TABLECREATE TABLE之前,你可以安全谁不存在,那么DROP TABLE你不必须DROP前检查TABLE存在。

+0

DROP TABLE可以用“IF EXISTS”子句进行组合以及防止错误。 – bot403 2010-09-17 20:44:43

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

CREATE TABLE IF NOT EXISTS mytable(id INTEGER);

的URL有关此文件是在:http://www.sqlite.org/lang_createtable.html