关于Sqlite.swift第三方库的一些用法

最近项目中使用到了sqlite.swift,其中的一些方法做一下记录,github上面有的就不做赘述了。


/**
     根据字段和主键创建表
 */
let primaryKey//主键
let keys//所以的列
       do {
            try db?.run(users.create(ifNotExists: true, block:{ (t) in
                for key in keys {
                    let sqlite_key = Expression<String?>(key)
                    if key == primaryKey {
                        let primaryKeyExpression = Expression<String>(key)
                        t.column(primaryKeyExpression, primaryKey: true)
                    }else {
                        t.column(sqlite_key)
                    }
                }
            }))
        } catch  {
        }
/**
    判断表是否存在
*/
        let tname //表名 
        let sqliteMaster = Table("sqlite_master")
        let type = Expression<String>("type")
        let name = Expression<String>("name")

        do {
            let tableCount = try db!.scalar(sqliteMaster.filter(type == "table" && name == tname).count)
            return tableCount == 1
        } catch {
            return false
        }
/**
更新列,当某一列不存在时,添加该列
*/

let name//表名
let Keys//所以字段名
do {
            let users = Table(name)
            let expression = users.expression
            let columnNames = try db!.prepare(expression.template, expression.bindings).columnNames

            for key in Keys {
                var isExist = false
                for columnName in columnNames {
                    if key == columnName {
                        isExist = true
                        break
                    }
                }
                if !isExist {
                    do {
                        try db!.run(users.addColumn(Expression<String?>(key)))
                    } catch  {

                    }
                }
            }

        } catch  {

        }

以上只列出了部分,其余的增删改查请上github查看。第一次写博客,如有错误的地方请指正,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值