【问题标题】:Can I test for the existence of a table in a SQLite database? [duplicate]我可以测试 SQLite 数据库中是否存在表吗? [复制]
【发布时间】:2010-11-29 18:53:52
【问题描述】:

有没有办法测试 SQLite 数据库中是否存在表?现在,我在 try catch 块中创建表,如果抛出异常,我知道表已经创建。肯定有更好的方法吧?

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    要检测特定表是否存在,请使用:

    SELECT name 
      FROM sqlite_master
     WHERE type = 'table'
       AND name LIKE '%your_table_name%'
    

    【讨论】:

    • 更好的答案,因为它检查类型。
    • 我认为检查类型没有任何优势。如果存在同名的索引或触发器,仍然无法创建表。
    【解决方案2】:

    有一个名为sqlite_master 的表包含数据库架构。您可以运行如下查询:

    select count(*) from sqlite_master where name='users';

    如果查询返回 1,则表 'users' 存在。也可以使用if not exists SQL 构造:

    create table if not exists users (name, pwd);

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多