我运行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]
我也尝试过删除模式名称,同样的错误。 当它显示存在时,为什么不能从该表中选择?
答案 0 :(得分:1)
H2数据库默认情况下区分大小写。
因此,当您用小写字母写表名并查询不带双引号的表名时,它将使其大写并尝试与此匹配。
由于当前表名是小写字母,因此您应该将其命名为引号,以便H2不会将其强制为大写。
select * from public."flyway_schema_history";