递归火山软件开发平台

标题: 请教大佬,Sqlite数据库 检查表是否存在 [打印本页]

作者: howill2021    时间: 2021-5-17 20:21
标题: 请教大佬,Sqlite数据库 检查表是否存在
本帖最后由 howill2021 于 2021-5-17 22:30 编辑

有2个问题请教大佬,Sqlite数据库创建后,怎么检查表是否存在呢,
另外就是创建表后,需要关闭一次Sqlite之后,数据库才会显示这个表,是什么原因


作者: abcfox    时间: 2021-5-18 12:43
**?一下,或初始化一下
作者: weilai    时间: 2021-5-18 13:27
记录 = 数据库.cha询SQL ("SELECT * FROM sqlite_master WHERE type='table' AND name = '" + 欲查表 + "'")

如果(记录.行数<1)
表不存在
否则
表存在

作者: 朕的    时间: 2021-5-18 13:48
weilai 发表于 2021-5-18 13:27
记录 = 数据库.cha询SQL ("SELECT * FROM sqlite_master WHERE type='table' AND name = '" + 欲查表 + "'" ...

虽然我不精通SQL,但你这个判断方法解决是不合适的。记录不存在,并不代表数据表不存在。
1、第一种方法
  1. SELECT * FROM USER_TABLES;
复制代码
选择库后,通过取所有表,结果对比即可知道存不存在了啊。有很多种方法

2、第二种方法

  1. IF EXISTS(SELECT name FROM [sysobjects] WHERE name = '表名')
  2. PRINT '该表存在'
  3. ELSE
  4. PRINT '该表不存在'。
复制代码
3、第三种方法
  1. SELECT table_name,create_time FROM information_schema.TABLES WHERE table_name = '表名'
复制代码
通过cha询表的创建日期,返回的日期值就可以判断。


擅长SQL的高手应该还有更好的办法。

作者: weilai    时间: 2021-5-18 15:00
我其实不会sql,这个方法是网上找的,用在sqlite里面是可行的,我亲自实验过




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4