SQLite FAQÖÐÎİæ
1) ÈçºÎ´´½¨×ÔÔö×ֶΣ¿
¼òµ¥µÄ»Ø´ð£ºÒ»¸öÉùÃ÷Ϊ INTEGER PRIMARY KEY µÄ×ֶν«×Ô¶¯Ôö¼Ó¡£
ÕâÀïÊÇÏêϸµÄ´ð°¸£º ´Ó SQLite µÄ 2.3.4 °æ±¾¿ªÊ¼£¬Èç¹ûÄ㽫һ¸ö±íÖеÄÒ»¸ö×Ö¶ÎÉùÃ÷Ϊ INTEGER PRIMARY
KEY£¬ÄÇôÎÞÂÛÄãºÎʱÏò¸Ã±íµÄ¸Ã×ֶβåÈëÒ»¸ö NULL Öµ£¬Õâ¸ö NULL Öµ½«×Ô¶¯±»¸ü»»Îª±È±íÖиÃ×Ö¶ÎËùÓÐÐеÄ×î´óÖµ´ó
1 µÄÕûÊý£»Èç¹û±íΪ¿Õ£¬ÄÇô½«±»¸ü»»Îª 1¡£±ÈÈ磬¼ÙÉèÄãÓÐÕâÑùµÄÒ»ÕÅÊý¾Ý±í:
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER
);
ÔÚÕâÕÅÊý¾Ý±íÀÉùÃ÷
INSERT INTO t1 VALUES(NULL,123);
ÔÚÂß¼ÒâÒåÉϵȼÛÓÚ£º
INSERT INTO t1 VALUES((SELECT max(a) from t1)+1,123);
Ò»¸öеÄAPIº¯Êý sqlite3_last_insert_rowid()
·µ»Ø×î½üµÄ²åÈë²Ù×÷µÄÕûÐμü
×¢ÒâÕâ¸öÕûÐͼüʼÖÕ±È֮ǰ²åÈë±íÖеÄ×îºóÒ»¸ö¼ü´ó1¡£Ð¼üÏà¶ÔÓÚ±íÖеÄÒÑÓмüÀ´ËµÊÇΨһµÄ£¬
µ«Ëü¿ÉÄÜÓë֮ǰ´Ó±íÖÐɾ³ýµÄ¼üÖµÖØµþ¡£ÒªÊ¼Öյõ½ÔÚÕû¸ö±íÖÐΨһµÄ¼ü£¬ÔÚINTEGER PRIMARY
KEYµÄÉùÃ÷֮ǰ¼Ó¹Ø¼ü´ÊAUTOINCREMENT.ÕâÑù±»Ñ¡µÄ¼ü½«×ÜÊDZȱíÖÐÒÑ´æÔÚµÄ×î´ó¼ü´ó1¡£Èô¿ÉÄܵÄ
×î´ó¼üÒÑ´æÔÚÓÚ±íÖУ¬INSERT²Ù×÷½«Ê§°Ü²¢·µ»ØÒ»¸öSQLITE_FULL´íÎóÂë.
(2) SQLite Ö§³ÖÄÄЩÊý¾ÝÀàÐÍ£¿
²Î¼û http://www.sqlite.org/datatype3.html
.
(3) ΪʲôÄÜÏò SQLite Êý¾Ý¿âµÄÕûÐÍ×Ö¶ÎÖвåÈë×Ö·û´®£¿
ÕâÊÇÒ»¸ö¹¦ÄÜ£¬²»ÊÇÒ»¸ö bug¡£Äã¿ÉÒÔÔÚÈκÎ×Ö¶ÎÖзÅÈκÎÐÅÏ¢£¬¶ø²»ÓùÜ×Ö¶ÎÉùÃ÷ΪʲôÀàÐÍ¡£
Äã¿ÉÒÔÍùÕûÐÍ×Ö¶ÎÖвåÈëÈÎÒⳤ¶ÈµÄ×Ö·û´®£¬»òÕßÍù²¼¶û×Ö¶ÎÖвåÈ븡µãÊý£¬»òÕßÍù×Ö·û×Ö¶ÎÖÐ ²åÈëÈÕÆÚ¡£ÔÚ CREATE
TABLE ÃüÁîÖÐÄãÖ¸¶¨¸øÕâ¸ö×ֶεÄÊý¾ÝÀàÐͲ»»áÏÞÖÆ²åÈëÕâ¸ö×ֶεÄÊý¾Ý¡£
ËùÓеÄ×ֶοÉÒÔ²åÈëÈÎÒⳤ¶ÈµÄ×Ö·û´®¡£µ«¶ÔÓÚ INTEGER PRIMARY KEY ×Ö¶ÎÀýÍâ¡£ÕâÖÖ×Ö¶ÎÖ»ÄÜ
´æ·ÅÒ»¸ö64λµÄÕûÊý£¬·ñÔò»á³ö´í¡£
µ«SQLite»áĬÈÏÄãÏ£ÍûʹÓÃÉùÃ÷µÄ×Ö¶ÎÀàÐÍ¡£ËùÒÔ£¬±ÈÈçÄãÏ£ÍûÔÚÒ»¸öÉùÃ÷ΪINTEGERµÄ×Ö¶Î
ÖвåÈëÒ»¸ö×Ö·û´®£¬SQLite»áÊÔͼ½«Æäת»»ÎªÒ»¸öÕûÊý¡£Èç¹ûת»»³É¹¦£¬ÄÇôÕûÊý½«±»²åÈ룬·ñ
Ôò²åÈë×Ö·û´®£¬ÕâÖÖÌØÐÔÓÐʱ±»³Æ×÷type or column
affinity
.
(4) Ϊʲô SQLite ÈÏΪ±í´ïʽ '0'=='00' ÎªÕæ£¿
ÔÚ 2.7.0 Ö®ºó£¬±í´ïʽ²»³ÉÁ¢¡£²Î¼ûÎĵµ datatypes in
SQLite version 3
(5) Ϊʲô SQLite ²»ÔÊÐíÔÚͬһÕűíÀïʹÓà '0' ºÍ '0.0' ×÷ΪÁ½¸ö²»Í¬µÄÐеÄÖ÷¼ü£¿
ÄãµÄÖ÷¼üÒ»¶¨ÊÇÊýÖµÀàÐ͵쬰ÑÀàÐ͸ÄΪ TEXT
Ïà¹ØÎĵµ£º
SQLite ÊÇÒ»¸öʵÏÖÁËÍ걸µÄ£¨self-contained)£¬¿ÉǶÈëµÄ(embeddable)£¬ÁãÅäÖÃ(zero-configuration)µÄSQLÊý¾Ý¿âÒýÇæµÄСÐ͵ÄCº¯Êý¿â¡£Ëü°üº¬ÒÔϵÄÌØµã£º
.
ÊÂÎñ´¦ÀíÔ×Ó»¯(atomic)£¬Ò»Ö»¯(consistent)£¬³Ö¾Ã»¯(isolated)£¬¾øÔµ»¯(durable)£¬¼´Ê¹ÊÇÔÚϵͳ±ÀÀ£ºÍµôµçʱ
ÁãÅäÖ㬲» ......
......
½ñÌìµÄѧϰÄÚÈÝÊÇsqliteºÍPDO mysql¡£
ÓÃ×Ô¼ºµÄ»°ËµËµÁ½¸ö¶«Î÷°É£º
sqliteËãÊÇÒ»ÖÖ²»ÏµÍ³µÄÊý¾Ý¿â´æ´¢·½Ê½£¬ËüµÄ´æ·Å¸ñʽÊÇÒ»¸ö.dbºó׺µÄÎļþ£¬ÔÚphpÖÐËü´æ·ÅÔÚµ±Ç°µÄĿ¼Ï£¬Ã²ËƲ»ÓÃÓû§ÃûÃÜÂ룬°²È«ÐԽϵͣ¬È´±È½Ï·½±ã¡£PHP5ÖÐ×Ô´øµÄһЩϵͳº¯Êý£¬¶¼ÊÇÒÔsqlite_¿ªÍ·µÄ¡£
PDOÈ«³ÆPHP Data Object£¬¹ËÃû˼Òå¾ÍÊÇPHPµÄÒ ......
SQLiteÖ§³ÖµÄ±àÒëÖ¸Áî(pragma)
PRAGMAÃüÁî
ÊÇÓÃÓÚÐÞ¸ÄSQlite¿â»ò²éѯSQLite¿âÄÚ²¿Êý¾Ý(non-table)µÄÌØÊâÃüÁî¡£PRAGMA ÃüÁîʹÓÃÓëÆäËüSQLiteÃüÁî(e.g. SELECT, INSERT)ÏàͬµÄ½Ó¿Ú£¬µ«ÔÚÈçÏÂÖØÒª·½ÃæÓëÆäËüÃüÁͬ:
ÔÚδÀ´µÄSQLite°æ±¾Öв¿·Öpragma¿ÉÄܱ»É¾³ý»òÌí¼Ó£¬Ð¡ÐÄʹÓá£
µ±Ê¹ÓÃδ֪µÄpragmaÓï¾äʱ²»²úÉú±¨´í ......