java - H2:如何判断表是否存在?

标签 java sql jdbc h2

我正在尝试编写检查 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_typesWORD_TYPES 是两个不同的表。
第二:如果要检查表是否存在,如果不存在则创建一个,我建议您使用以下示例:

CREATE TABLE IF NOT EXISTS TEST(ID INT PRIMARY KEY, NAME VARCHAR(255));

关于java - H2:如何判断表是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19518265/

相关文章:

java - 将迭代器添加到集合中

sql - oracle数据库合并多个表的结果

spring - 单例 vs 原型(prototype) JdbcTemplate

Java:Netbeans - 没有找到适合 jdbc mysql 的驱动程序(在构建和清理项目之后)

java - TabPagerIndicator 与抽屉导航出错

Java - Eclipse JTextField 太大

java - 获取 .jar 文件到手机错误

java - 将 Eclipse Web 应用程序连接到 sql 2012 数据库

mysql - 按组返回前 n 个平均值

java - 多次重用 PreparedStatement