代码之家  ›  专栏  ›  技术社区  ›  prosseek

多次运行“create table…”是否安全?

  •  2
  • prosseek  · 技术社区  · 14 年前

    我有一个解析器将XML文件解析到sqlite数据库中,并且当前的实现生成“create table xyz…”,即使该表已经存在。

    • 这样行吗?我的意思是,即使在数据库中存在表,也可以运行“创建表”吗?
    • 如果没有,是否有简单的方法检查sqlite db拥有的表(及其内容)的名称?
    3 回复  |  直到 14 年前
        1
  •  4
  •   AndiDog    14 年前

    你要找的是 CREATE TABLE IF NOT EXISTS 以及常见问题条目 How do I list all tables/indices contained in an SQLite database .

    创建不带“if not exists”选项的表将导致错误。

        2
  •  1
  •   Svisstack    14 年前

    你可以 DROP TABLE 之前 CREATE TABLE ,你可以安全 下降表 谁不存在,你就不必检查 TABLE 以前的存在 DROP .

        3
  •  1
  •   Sean Reifschneider    14 年前

    sqlite有一个“if not exists”子句,这样您就可以在数据库中抛出一个“create table”,如果它已经存在,它将忽略它。例如:

    如果不存在,则创建表mytable(id integer);

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