SQLiteÓï·¨ PRAGMA
SQLiteÖ§³ÖµÄ±àÒëÖ¸Áî(pragma)
PRAGMAÃüÁî
ÊÇÓÃÓÚÐÞ¸ÄSQlite¿â»ò²éѯSQLite¿âÄÚ²¿Êý¾Ý(non-table)µÄÌØÊâÃüÁî¡£PRAGMA ÃüÁîʹÓÃÓëÆäËüSQLiteÃüÁî(e.g. SELECT, INSERT)ÏàͬµÄ½Ó¿Ú£¬µ«ÔÚÈçÏÂÖØÒª·½ÃæÓëÆäËüÃüÁͬ:
ÔÚδÀ´µÄSQLite°æ±¾Öв¿·Öpragma¿ÉÄܱ»É¾³ý»òÌí¼Ó£¬Ð¡ÐÄʹÓá£
µ±Ê¹ÓÃδ֪µÄpragmaÓï¾äʱ²»²úÉú±¨´í¡£Î´ÖªµÄpragma½ö½ö»á±»ºöÂÔ£¬¼´ÊÇ˵ÈôÊÇ´ò´íÁËpragmaÓï¾äSQLite²»»áÌáʾÓû§¡£
һЩpragmaÔÚSQL±àÒë½×¶ÎÉúЧ¶ø·ÇÖ´Ðн׶Ρ£¼´ÊÇ˵ÈôʹÓÃCÓïÑÔµÄsqlite3_compile(),
sqlite3_step(), sqlite3_finalize() API
(»òÀàËÆµÄ·â×°½Ó¿ÚÖÐ)£¬pragma¿ÉÄÜÔÚµ÷ÓÃsqlite3_compile()ÆÚ¼äÆð×÷Óá£
pragmaÃüÁî²»ÓëÆäËüSQLÒýÇæ¼æÈÝ¡£
¿ÉÓõÄpragmaÃüÁîÓÐÈçÏÂËĸö»ù±¾ÀàÐÍ£º
ÓÃÓڲ쿴µ±Ç°Êý¾Ý¿âµÄģʽ
¡£
ÓÃÓÚÐÞ¸ÄSQLite¿âµÄ²Ù×÷
»ò²éѯµ±Ç°µÄ²Ù×÷ģʽ¡£
ÓÃÓÚ²éѯ»òÐÞ¸ÄÁ½¸öÊý¾Ý¿âµÄ°æ±¾ºÅ
£¬schema-versionºÍuser-version.
ÓÃÓÚµ÷ÊÔ¿â
ºÍУÑéÊý¾Ý¿âÎļþ¡£
PRAGMAÃüÁîÓï·¨
sql-statement
::=
PRAGMA
name
[=
value
]
|
PRAGMA
function
(
arg
)
ʹÓÃÕûÊýÖµvalue
µÄpragmaÒ²¿ÉÒÔʹÓ÷ûºÅ±íʾ£¬×Ö·û´®"on
", "true
",ºÍ "yes
" µÈͬÓÚ1
£¬"off
", "false
",ºÍ "no
"µÈͬÓÚ0
. ÕâЩ×Ö·û´®´óСд²»Ãô¸ÐÇÒÎÞÐë½øÐÐÒýÓá£ÎÞ·¨Ê¶±ðµÄ×Ö·û´®±»µ±×÷1
ÇÒ²»»á±¨´í¡£value
·µ»ØÊ±ÊÇÕûÊý¡£
ÓÃÓÚÐÞ¸ÄSQLite¿âµÄ²Ù×÷µÄPragma
PRAGMA auto_vacuum;
PRAGMA auto_vacuum =
0 | 1
;
²éѯ»òÉèÖÃÊý¾Ý¿âµÄauto-vacuum±ê¼Ç¡£
Õý³£Çé¿öÏ£¬µ±Ìá½»Ò»¸ö´ÓÊý¾Ý¿âÖÐɾ³ýÊý¾ÝµÄÊÂÎñʱ£¬Êý¾Ý¿âÎļþ²»¸Ä±ä´óС¡£Î´Ê¹ÓõÄÎļþÒ³±»±ê¼Ç²¢ÔÚÒÔºóµÄÌí¼Ó²Ù×÷ÖÐ ÔÙ´ÎʹÓá£ÕâÖÖÇé¿öÏÂʹÓÃVACUUM
ÃüÁîÊÍ·Åɾ³ýµÃµ½µÄ¿Õ¼ä¡£
µ±¿ªÆôauto-vacuum£¬µ±Ìá½»Ò»¸ö´ÓÊý¾Ý¿âÖÐɾ³ýÊý¾ÝµÄÊÂÎñʱ£¬Êý¾Ý¿âÎļþ×Ô¶¯ÊÕËõ£¬ (VACUUMÃüÁîÔÚauto-vacuum¿ªÆôµÄÊý¾Ý¿âÖв»Æð×÷ÓÃ)¡£Êý¾Ý¿â»áÔÚÄÚ²¿´æ´¢Ò»Ð©ÐÅÏ¢ÒÔ±ãÖ§³ÖÕâÒ»¹¦ÄÜ£¬ÕâʹµÃ Êý¾Ý¿âÎļþ±È²»¿ªÆô¸ÃÑ¡ÏîʱÉÔ΢´óһЩ¡£
Ö»ÓÐÔÚÊý¾Ý¿âÖÐ佨Èκαíʱ²ÅÄܸıäauto-vacuum±ê¼Ç¡£ÊÔͼÔÚÒÑÓбíµÄÇé¿öÏÂÐ޸IJ»»áµ¼Ö±¨´í¡£
PRAGMA cache_size;
PRAGMA cache_size =
Number-of-pages
;
²éѯ»òÐÞ¸ÄSQLiteÒ»´Î´æ´¢ÔÚÄÚ´æÖеÄÊý¾Ý¿âÎļþÒ³Êý¡£Ã¿Ò³Ê¹ÓÃÔ¼1.5KÄڴ棬ȱʡµÄ»º´æ´óСÊÇ2000. ÈôÐèҪʹÓøıä´óÁ¿¶àÐеÄU
Ïà¹ØÎĵµ£º
sqlite-3.3.6±àÒë°²×°Óë½»²æ±àÒëÈ«¹ý³ÌÏêϸ¼Ç¼
ÏÂÎĽéÉܵÄÄÚÈݶ¼ÊÇ»ùÓÚ Linux RedHat 9.0 ƽ̨µÄ¡£
Ò»¡¢PC»ú±àÒë°²×°
ÇëÔĶÁÔÚ°²×°°üÀïµÄ INSTALL Îļþ¡£»òÕßʹÓÃPEAR installer with "pear install sqlite"¡£SQLiteÒѾÄÚÖÃÁË£¬Äã²»ÐèÒª°²×°Èκθ½¼ÓµÄÈí¼þ£¨additional software£©¡£
Windows users¿ÉÒÔÏÂÔØSQLiteÀ©Õ¹ ......
Ò»¡¢SQLite¼ò½é
SQLite ÊÇÓÃCÓïÑÔ±àдµÄ¿ªÔ´Êý¾Ý¿â£¬Ö÷ÒªÓÃÓÚǶÈëʽ£¬ÄãÒ²¿ÉÒÔ°ÑËü¼¯³ÉÔÚ×Ô¼ºµÄ×ÀÃæ³ÌÐòÖУ¬Ò²ÓÐÈ˽«ÆäÌæ´úAccess£¬ÓÃ×÷ºǫ́Êý¾Ý¿â¡£
SQLite Ö§³Ö¶àÊýSQL92±ê×¼£¬ÀýÈ磺Ë÷Òý¡¢ÏÞÖÆ¡¢´¥·¢ºÍ²é¿´Ö§³Ö¡£
Ö§³Ö NULL¡¢INTEGER¡¢REAL¡¢TEXT ºÍ BLOB Êý¾ÝÀàÐÍ£¬Ö§³ÖÊÂÎñ¡£
¶þ¡¢ÏÂÔØSQLite
SQLite¿ÉÒÔµ½¹Ù·½Õ¾µ ......
dbAccess.js
import System.Data; // we import our data class
import Mono.Data.SqliteClient; // we import our sqlite client
class dbAccess {
// variables for basic query access
private var connection : String;
private var dbcon : IDbConnection;
private ......
SQLite3ÊÇSQLiteÒ»¸öȫеİ汾,ËüËäÈ»ÊÇÔÚSQLite 2.8.13µÄ´úÂë»ù´¡Ö®ÉÏ¿ª·¢µÄ,µ«ÊÇʹÓÃÁ˺Í֮ǰµÄ°æ±¾²»¼æÈݵÄÊý¾Ý¿â¸ñʽºÍAPI. SQLite3ÊÇΪÁËÂú×ãÒÔϵÄÐèÇó¶ø¿ª·¢µÄ:
Ö§³ÖUTF-16±àÂë.
Óû§×Ô¶¨ÒåµÄÎı¾ÅÅÐò·½·¨.
¿ÉÒÔ¶ÔBLOBs×ֶν¨Á¢Ë÷Òý.
Òò´ËΪÁËÖ§³ÖÕâÐ©ÌØÐÔÎҸıäÁËÊý¾Ý¿âµÄ¸ñʽ,½¨Á¢ÁËÒ»¸öÓë֮ǰ°æ±¾²»¼æÈݵ ......
sqlite3 *db;
sqlite3_stmt *stat;
char
*zErrMsg = 0;
char
temp[256], FileRoot[256];
char
buffer2[1024]="0";
sprintf(temp, _T("%s"), _T("utf.db")) ......