2015-02-24 16 views
1

我有問題通過UCanAccess插入記錄到表中。 我插入看起來是這樣的:net.ucanaccess.triggers.TriggerException:表不存在。 :Z_2015_02_24

INSERT INTO [2015_02_24_15_52_29_926_test_schema] (...) 

插入將由標準java.sql.Statement被解僱。

UCanAccess在內部轉換sql。這就是結果:

INSERT INTO Z_2015_02_24_15_52_29_926_test_schema (...) 

爲什麼UCanAccess爲表名添加'Z'?

我調試了代碼後發現變化發生在的類別SQLConverter由UCanAccess提供。

回答

1

UCanAccess不允許在表名稱開頭的數字。

只需使用TBL_2015...作爲您的表名。

2

UCanAccess旨在支持像2015_02_24_15_52_29_926_test_schema這樣的表名。爲了做到這一點,它需要使用內部命名重映射。 關於它的舊版本可能存在一些錯誤,但在最新版本(我剛剛嘗試使用2.0.9.2和2.0.9.3)中插入了一個像 insert into [2015_02_24_15_52_29_926_test_schema] values(1,'f')很好的 。

+0

感謝您的回覆。我使用最新版本,但它不適合我。儘管如此,對於我在表名上加上「TBL_」是一個令人滿意的解決方案。 – logineimer 2015-02-27 11:33:39

+0

這很奇怪,我也開發了一些關於這個特定情況的junit測試,並且它們都成功運行。無論如何,如果你可以改進命名,只需要做。 – jamadei 2015-02-27 15:03:01