帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
43
帖子
2
勋章
419
Y币

[App引擎] db 如何判断数据库里表是否存在

[复制链接]
发表于 2017-3-13 14:54:02
我在使用db时,需要判断数据库里表是否存在
  1. var db = api.require('db'),
  2.                         sql = "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='like'",
  3.                         ret = db.selectSqlSync({
  4.                             name: 'chao',
  5.                             sql: sql
  6.                         });
  7.                 alert(JSON.stringify(ret.data[0]));       
复制代码
alert出来的是{"count(*)":0},
但是if(count(*) == 0){
//不存在数据表
}else{
//存在数据表
}
这种写法是错误的,请问怎么才能判断count(*) == 0
12
帖子
0
勋章
272
Y币
判断某个表是否存在的SQL:SELECT `name` FROM sqlite_master WHERE type="table"
这条SQL的意思是当前数据库里所有“表的名字”,有了表名列表自己判断一下就知道这个表是否存在了。完整代码如下:
var db = api.require('db');
        var ret = db.selectSqlSync({
            name: 'webusin',
            sql: 'SELECT `name` FROM sqlite_master WHERE type="table"'
        });
        console.log("ret -> " + JSON.stringify(ret.data));
21
帖子
4
勋章
1万+
Y币
selectSql(ret)这里ret会有一个status
5
帖子
0
勋章
3759
Y币
你要判断表是否存在还是数据是否为0??使用这个模块第一步要打开数据库、创建表或本身知道有表,判断表只能在创建的时候判断下,其他时间没有SQL可以判断的

你写的SQL,你打印下返回的结果
43
帖子
2
勋章
419
Y币
主函数 发表于 2017-3-13 15:00
selectSql(ret)这里ret会有一个status

这个status只是判断sql语句是否执行成功的,他不能判断数据表是否存在
43
帖子
2
勋章
419
Y币
smifxrh 发表于 2017-3-13 15:06
你要判断表是否存在还是数据是否为0??使用这个模块第一步要打开数据库、创建表或本身知道有表,判断表只 ...

返回的结果是:{"status":true,"data":[{"count(*)":0}]}
也就是创建完后就没办法判断这个表是否存在是吗?
5
帖子
0
勋章
3759
Y币
lintai 发表于 2017-3-13 15:14
返回的结果是:{"status":true,"data":[{"count(*)":0}]}
也就是创建完后就没办法判断这个表是否存在是吗 ...

这个返回结果表明是表是存在的,但里面的数据为0,表是空的
43
帖子
2
勋章
419
Y币
smifxrh 发表于 2017-3-13 15:17
这个返回结果表明是表是存在的,但里面的数据为0,表是空的

可是表我都还没创建
21
帖子
4
勋章
1万+
Y币
lintai 发表于 2017-3-13 15:12
这个status只是判断sql语句是否执行成功的,他不能判断数据表是否存在

我就是用这个判断的,如果查询失败,就表示表不存在呀。
0
帖子
0
勋章
246
Y币
lintai 发表于 2017-3-13 15:18
可是表我都还没创建

你确认??如果表没创建应该是返回失败才对,你用可视化工具看看这个DB文件
43
帖子
2
勋章
419
Y币
技术支持-L 发表于 2017-3-13 15:24
你确认??如果表没创建应该是返回失败才对,你用可视化工具看看这个DB文件 ...


这里显示数据库里什么都没有
QQ截图20170313154218.png
12下一页
您需要登录后才可以回帖 登录

本版积分规则