Joo*_*kka 11 sql database h2 create-table
是否有(或多或少)标准方法不仅检查名为mytable
exists 的表是否存在,还检查其模式是否与它应该是什么类似?我正在试验H2数据库,并且
CREATE TABLE IF NOT EXISTS mytable (....)
Run Code Online (Sandbox Code Playgroud)
声明显然只检查表的名称.如果有一个具有给定名称但具有不同模式的表,我希望得到一个例外.
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'
AND TABLE_SCHEMA = 'public'
Run Code Online (Sandbox Code Playgroud)
我不知道有任何数据库本身具有此功能。
还没有使用过它(用我自己的代码来做到这一点),但也许Apache DdlUtils可以提供帮助。
这是一件棘手的事情,特别是如果您希望它与不同的数据库供应商一起工作。此外,对于模式需要多么相似才能通过可能存在不同的意见。列名、列顺序、列类型、主键定义:当然可以。但是约束、约束名称、表空间定义等等又如何呢?