2015-12-14 70 views
0

我使用這個PHP script將MySQL數據庫降級並解析爲SQLite。如何使用自動增量列插入行SQLite

我使用WPF上的SQLite數據庫,我能夠使用此library做一些操作。問題是,我試圖在一個表的自動遞增場執行INSERT和它不工作,這是我的查詢:

SQLiteConnection conn = new SQLiteConnection("Data Source=test.db"); 
conn.Open(); 
var command = conn.CreateCommand(); 

command.CommandText = "INSERT INTO tickets(created, user) values ('2015-12-12', 345)"; 
command.ExecuteNonQuery(); 
conn.Close(); 

這裏是我的表門票在帶.db:

CREATE TABLE "tickets" (
    "id" int(11) NOT NULL , 
    "user" int(11) NOT NULL, 
    "created" timestamp NOT NULL , 
    PRIMARY KEY ("id") 
) 

在MySQL我的查詢工作完美,我的ID列總是獲得下一個自動增量值,但在SQLite中,我無法將此值自動增量。

其他信息:當我運行程序的時候,下一個消息崩潰約束失敗

NOT NULL約束失敗:tickets.id

我知道這個值不能爲空,但它應該是自動遞增的......這可能嗎?

+0

'id'是自動遞增? –

+0

@ un-lucky我指定了MySQL上的自動增量值,但解析器沒有添加 –

+0

下面是答案和這個問題的完整解釋:http://stackoverflow.com/questions/20744711/mysql2sqlite-sh-auto-increment –

回答

0

您需要在創建表格時指定字段id爲自動增量;

乘坐look

CREATE TABLE "tickets" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT, 
"user" int(11) NOT NULL, 
"created" timestamp NOT NULL); 
0

你應該標記與自動遞增關鍵字如下的列:

CREATE TABLE tickets(
    ID INTEGER PRIMARY KEY AUTOINCREMENT, 
    USER   INTEGER  NOT NULL, 
    CREATED   TIMESTAMP  NOT NULL 
); 

來源:在您指定的場https://www.sqlite.org/autoinc.html

+0

@ Fernando-Santiago對此有幫助嗎?如果是的話,你可以把它標記爲答案! –