SQLite 内存数据库备份到磁盘中

 SQLite 一些有用的笔记。

1. SQLite 内存数据库备份到磁盘中。

    备份当前SQLite内存数据库(:memory:模式创建的数据库)到磁盘中,备份磁盘数据库,当然也可以用此办复制数据库。以下使用SQLite的 .Net版本。

    string dbFile = @"D:\data\books.db";
    SQLiteCommand cmd = conn.CreateCommand();
    cmd.CommandType = System.Data.CommandType.Text;

    cmd.CommandText = string.Format("attach '{0}' AS disk_db", dbFile);
    cmd.ExecuteNonQuery() ;

    cmd.CommandText = "BEGIN TRANSACTION";
    cmd.ExecuteNonQuery();

    //存在表则删除该表
    cmd.CommandText = "DROP TABLE IF EXISTS disk_db.address_book";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "CREATE TABLE disk_db.address_book AS SELECT * FROM address_book";
    // OR IF TABLE IS EXISTS: cmd.CommandText = "INSERT INTO disk_db.address_book AS SELECT * FROM address_book";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "COMMIT TRANSACTION";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "DETACH disk_db";

    cmd.ExecuteNonQuery();

 

2. 判断表是否存在另外方法

SELECT COUNT(*) FROM sqlite_master where type='table' and name='address_book';

 

3. DROP TABLE
语法:DROP TABLE [IF EXISTS] [database-name.] table-name

 

4. 修改表名称

ALTER TABLE 旧表名 RENAME TO 新表名

 

5. 为表增加一列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 限定符

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值