sqlcipher附加数据库

时间:2011-10-18 16:40:15

标签: sqlcipher

我正在关注sqlcipher Api文档中的示例:http://sqlcipher.net/sqlcipher-api#attach

ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'secret'; -- create a new encrypted database
CREATE TABLE encrypted.t1(a,b); -- recreate the schema in the new database (you can inspect all objects using SELECT * FROM sqlite_master)
INSERT INTO encrypted.t1 SELECT * FROM t1; -- copy data from the existing tables to the new tables in the encrypted database
DETACH DATABASE encrypted;

第一行CREATE TABLE encrypted.t1(a,b);有(a,b)和第二行

INSERT INTO encrypted.t1 SELECT * FROM t1;没有。

为什么第一行中有(a,b),它是什么?

1 个答案:

答案 0 :(得分:3)

在这种情况下,a和b是列名。文档中对该示例的介绍解释了重要的一点“假设您有一个标准的SQLite数据库,名为unncrypted.db,带有一个表,t1(a,b)。”然后:

  1. 第一行附加新的加密数据库。
  2. 接下来,在加密数据库中创建具有相同名称和列规范的第二个表。
  3. 第三行选择原始表中的所有数据,并将其插入加密数据库中的新表中。
  4. 因为两个表上的列是相同的,所以没有必要明确列出表列。