我正在使用HSQLDB 2.2.9中的GUI(hsqldb.jar)創建數據庫。我在一個單獨的文本文件中包含了所有的SQL命令。所以要創建數據庫,我只需複製文本並粘貼到HSQLDB編輯器中,然後點擊「Execute SQL」按鈕。我已經成功創建了幾次不同版本的DB,每次只需按下一次「Execute SQL」按鈕即可執行CREATE TABLE
命令,並且隨後按下「Execute SQL」按鈕執行INSERT INTO
命令。這是有效的,但同時執行CREATE
和INSERT
命令會更方便。我試着將這些組合成一個「執行SQL」,但我不斷收到此錯誤:使用腳本創建表並插入數據未找到HSQLDB表
user lacks privilege or object not found: SHOP/Error Code: -5501/State: 42501
這是我已經試過:
CREATE TABLE Shop (
Id int NOT NULL IDENTITY,
Name varchar(255) NOT NULL,
UNIQUE (Name)
)
INSERT INTO Shop VALUES (
NULL,
'Test Shop'
)
請注意,此完全相同的代碼如果我通過兩個單獨的步驟執行SQL,則可以工作。我試過在CREATE
和INSERT
命令以及CHECKPOINT
之間放置COMMIT
,但這兩個都解決了這個問題。我也嘗試在頂部添加SET WRITE_DELAY FALSE
,但這也沒有解決。
我需要添加到此代碼才能使其一步工作?謝謝!
你爲什麼不終止正確使用'語句;'?大多數GUI客戶端(不知道hsqldb之一)會自動拆分語句並分別發送每個語句。 –
@a_horse_with_no_name我應該包括';'s。我讓他們參加了一些試驗,我也遇到了同樣的錯誤,不管他們有沒有這些錯誤。似乎fredt有我的答案,但不是我正在尋找的那個。感謝您的評論。 – neizan