2017-02-26 48 views
0

歷史的結構SQL Synatax錯誤datetime列

CREATE TABLE 'history' 
     ( 
         'id'  INTEGER PRIMARY KEY autoincrement NOT NULL, 
         'symbol' INTEGER NOT NULL, 
         'shares' INTEGER NOT NULL, 
         'price' text NOT NULL, 
         'transaction' datetime NOT NULL, 
         'user_id'  INTEGER NOT NULL 
     ) 

插入SQL語句失敗的:

INSERT INTO history 
     (symbol, 
     shares, 
     price, 
     transaction, 
     user_id) 
VALUES ('MSFT', 
     10, 
     25, 
     '2017-02-26 21:50:10', 
     3) 

未能解決該問題。請幫忙。

+1

你可以發佈錯誤消息嗎? –

回答

1

transactionreserved word所以,當你想用它作爲列名,你應該雙引號是:

INSERT INTO history 
(symbol, shares, price, "transaction", user_id) ... 
         ^  ^

更好的辦法是使用一個不同的名稱列,這樣你就不必擔心引用的東西。

此外,在SQL中,雙引號用於標識符,單引號用於字符串文本,因此您應該習慣於在您的create table中使用雙引號。 SQLite會讓你逃避很多事情,但是良好的習慣(比如適當的引用)總比壞習慣好(比如依靠SQLite對SQL的鬆散解釋)。