2012-04-02 81 views
0

我想在我的SQLite數據庫中設置CodeIgniter會話表,這實際上是爲了MySQL。創建表語句SQLite的語法錯誤

我不是SQLite的語法知識和在此聲明我找不到錯誤:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL, 
    ip_address varchar(16) DEFAULT '0' NOT NULL, 
    user_agent varchar(120) NOT NULL, 
    last_activity int(10) unsigned DEFAULT 0 NOT NULL, 
    user_data text NOT NULL, 
    PRIMARY KEY (session_id), 
    KEY `last_activity_idx` (`last_activity`) 
); 
+0

什麼是錯誤? – Yuck 2012-04-02 14:59:18

+1

確保支持數據類型「text」和「unsigned」。 – Randy 2012-04-02 14:59:39

+0

我使用的phpLiteadmin並沒有真正給出一個有意義的錯誤: 查詢的語法存在問題(查詢未執行) CREATE TABLE IF NOT EXISTS'ci_sessions'(session_id varchar(40)DEFAULT' 0'NOT NULL,ip_address varchar(16)DEFAULT'0'NOT NULL,user_agent varchar(120)NOT NULL,last_activity int(10)unsigned DEFAULT 0 NOT NULL,user_data text NOT NULL,PRIMARY KEY(session_id),KEY'last_activity_idx '('last_activity')) – Tincan 2012-04-02 15:10:33

回答

0

從`ci_sessions`等地取出反引號。反引號不是可轉義名稱的可移植方式,它們不受SQLite支持。

+0

我已經添加單引號,但它沒有奏效。我用sqlite工作室來解析查詢,它給了我這個錯誤:「KEY」附近的錯誤:語法錯誤。如果我刪除該行,該查詢似乎可行,但我不確定Code Igniter會帶來什麼後果。 – Tincan 2012-04-02 15:22:42

+0

然後,看起來KEY的語法是錯誤的。看看外鍵的SQLite文檔:http://sqlite.org/foreignkeys.html – 2012-04-02 15:25:39

+0

這是一個選項,但後來我不明白mySQL的KEY語法。當我搜索它時,它僅給出了主/外鍵的結果。那麼mySQL中的KEY是指SQLite中的FOREIGN KEY? – Tincan 2012-04-02 15:33:14