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



我在通过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中的SQLConverter.escape(sql)中。

UCanAccess旨在支持类似2015_02_24_15_52_29_926_testrongchema的表名。为了做到这一点,它需要使用内部命名重映射。在非常旧的版本中可能会有一些bug,但INSERTinsert into [2015_02_24_15_52_29_926_test_schema] values(1,'f')运行良好在最新版本中(我刚刚尝试过2.0.9.2和2.0.9.3)。

UCanAccess不允许在表名的开头使用数字。

只需使用TBL_2015...作为表名即可。

相关内容

  • 没有找到相关文章

最新更新