H2外壳不允许从表中选择

时间:2019-09-08 13:07:48

标签: h2

我运行H2的shell工具:

java -cp h2-1.4.199.jar org.h2.tools.Shell

我愿意:

sql> show tables
...> ;
TABLE_NAME            | TABLE_SCHEMA
flyway_schema_history | PUBLIC
(1 row, 19 ms)

然后我要从该表中选择:

sql> select * from public.flyway_schema_history;
Error: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "FLYWAY_SCHEMA_HISTORY" not found; SQL statement:
select * from public.flyway_schema_history [42102-199]

我也尝试过删除模式名称,同样的错误。 当它显示存在时,为什么不能从该表中选择?

1 个答案:

答案 0 :(得分:1)

H2数据库默认情况下区分大小写。

因此,当您用小写字母写表名并查询不带双引号的表名时,它将使其大写并尝试与此匹配。

由于当前表名是小写字母,因此您应该将其命名为引号,以便H2不会将其强制为大写。

select * from public."flyway_schema_history";