在sqlite中为主数据库设置PRAGMA encoding =“UTF-16”

时间:2014-01-25 08:38:48

标签: database sqlite character-encoding

我读过在创建数据库之后无法更改数据库的文本编码,并且会默默忽略任何尝试这样做的操作。(来自here

Frome this post,要创建主数据库,在SQLite中说'databasename.db',我们必须在命令提示符下键入以下内容:

  

sqlite3 databasename.db

创建数据库并将sqlite shell显示为:

C:\Documents and Settings\Administrator>sqlite3 AudioData.db
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

在这种情况下,如何设置PRAGMA编码?如果在创建数据库命令之后启动sqlite shell,我怎么能在create database命令之前给出PRAGMA命令? 提前谢谢!

2 个答案:

答案 0 :(得分:6)

你刚才写的就是调用sqlite3。此时只有一个空文件。然后你设置你的pragma。创建第一个表后,将写入包含其所有设置的数据库。编写所有环境变量的时间非常重要。就在这时,真正创建了数据库。所以在创建第一个表之前设置你的pragma 例如

sqlite3 test.db

打开sqlite,当时没有写任何内容

pragma encoding=utf16;

仍然没有写任何内容

.quit

关闭sqlite,创建一个空文件test.db

sqlite3 test.db

打开sqlite

pragma encoding = utf16;
pragma nnnn=xxx;

设置pragma(s),文件test.db仍为空

create table test (testid integer);

现在数据库真正被创建,数据库文件test.db被写入内容

答案 1 :(得分:-2)

使用SQLite浏览器实现此类高级功能。这是非常直接的使用。