我正在尝试编写检查 H2 表是否存在的 Java 代码:如果它不存在,它首先执行一个 CREATE TABLE
查询,该查询在继续执行任何操作之前创建表进一步。
我听从了 this Google Groups question 中的建议但它根本不起作用。
如果我运行以下查询:
SELECT COUNT(*) AS count FROM information_schema.tables WHERE table_name = 'word_types'
我返回一行,其中包含一个值为 0 的 COUNT
字段;这表明 word_types
表不存在。但是当我运行时:
SELECT * FROM word_types
我得到了 0 个结果集,但我使用的 SQL 前端/GUI 向我显示了 word_types
表中存在的所有字段/列。此外,当我深入了解数据库的可用表列表(使用相同的 GUI)时,我看到 word_types
存在。
那么,在尝试确定 H2 表是否存在时,正确的查询是什么? 使用 v1.3.173。提前致谢!
最佳答案
首先:检查您输入表格名称的大小写。这很重要。 word_types
和 WORD_TYPES
是两个不同的表。
第二:如果要检查表是否存在,如果不存在则创建一个,我建议您使用以下示例:
CREATE TABLE IF NOT EXISTS TEST(ID INT PRIMARY KEY, NAME VARCHAR(255));
关于java - H2:如何判断表是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19518265/