2014-03-27 68 views
0

當我執行以下針對SQLite數據庫SQL:如何在SQLite中使用事務?

BEGIN; 
CREATE TABLE [Profile] (
[Id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
[ProfileExperimentId] INTEGER NOT NULL, 
[Name] NVARCHAR(50) NOT NULL 
) 
COMMIT; 

我得到以下錯誤:

27-03-2014 14:19:33: SQL Error: SQL logic error or missing database 

我通過一個SQLite管理員工具執行的SQL。

如果我執行上面的sql沒有事務表創建。

我錯過了什麼? Thx

回答

3

COMMIT之前需要用分號;來終止CREATE TABLE

+0

我試過了:BEGIN; CREATE TABLE [Profile]( [Id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, [ProfileExperimentId] INTEGER NOT NULL, [Name] NVARCHAR(50)NOT NULL ); COMMIT; - 但是它不起作用,同樣的錯誤信息 – Diemauerdk

+0

適用於我,使用'sqlite3'工具。可能你的工具不支持你正在嘗試使用的東西。它也沒有顯示實際的錯誤信息,它只是將錯誤代碼轉換爲通用信息。 – laalto

+0

Thx尋求幫助。好吧,我已經嘗試爲Firefox使用一個sqlite插件,給我另一個錯誤消息:SQLiteManager:BEGIN; [無法在事務內啓動事務] 異常名稱:NS_ERROR_FAILURE。但我可以嘗試sqlite3工具。 :) – Diemauerdk