递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 9262|回复: 4
打印 上一主题 下一主题

[安卓] 请教大佬,Sqlite数据库 检查表是否存在

[复制链接]

33

主题

219

帖子

2220

积分

金牌会员

Rank: 6Rank: 6

积分
2220
跳转到指定楼层
楼主
发表于 2021-5-17 20:21:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 howill2021 于 2021-5-17 22:30 编辑

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

回复

使用道具 举报

19

主题

226

帖子

1753

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1753
沙发
发表于 2021-5-18 12:43:00 来自手机 | 只看该作者
**?一下,或初始化一下
回复

使用道具 举报

21

主题

392

帖子

3379

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3379
板凳
发表于 2021-5-18 13:27:38 | 只看该作者
记录 = 数据库.cha询SQL ("SELECT * FROM sqlite_master WHERE type='table' AND name = '" + 欲查表 + "'")

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

使用道具 举报

193

主题

1209

帖子

4922

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4922
QQ
地板
发表于 2021-5-18 13:48:54 | 只看该作者
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的高手应该还有更好的办法。
全国活动会议直播拍摄
回复

使用道具 举报

21

主题

392

帖子

3379

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3379
5#
发表于 2021-5-18 15:00:32 来自手机 | 只看该作者
我其实不会sql,这个方法是网上找的,用在sqlite里面是可行的,我亲自实验过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-6-19 10:16 , Processed in 0.080310 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表