递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

31

主题

211

帖子

1952

积分

金牌会员

Rank: 6Rank: 6

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

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

回复

使用道具 举报

19

主题

227

帖子

1753

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

18

主题

337

帖子

2923

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

149

主题

941

帖子

3976

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3976
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的高手应该还有更好的办法。
全国江浙沪音视频通讯、视频会议互动
回复

使用道具 举报

18

主题

337

帖子

2923

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 14:50 , Processed in 0.085040 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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