net.ucanaccess.triggers.TriggerException:表不存在。 :Z_2015_02_24

时间:2015-02-24 15:13:10

标签: java sql eclipse ucanaccess jackcess

我在通过UCanAccess将记录插入表中时遇到问题。 我的插入内容如下所示:

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'?

我调试了代码,发现更改发生在UCanAccess提供的类SQLConverter.escape(sql)SQLConverter

2 个答案:

答案 0 :(得分:2)

UCanAccess旨在支持2015_02_24_15_52_29_926_test_schema等表名。为此,需要使用内部命名重映射。 关于它的旧版本可能存在一些错误,但是像INSERT一样 insert into [2015_02_24_15_52_29_926_test_schema] values(1,'f')效果很好 在最新版本中(我刚试过2.0.9.2和2.0.9.3)。

答案 1 :(得分:1)

UCanAccess不允许在表名的开头添加数字。

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