jOOQ:禁用约束的数据库无关方法

时间:2017-03-13 10:01:50

标签: constraints jooq database-agnostic

我想知道是否有办法以不可知的方式在jOOQ中为不同的数据库禁用数据库约束。例如,在MySQL和PostgreSQL中禁用外键约束有很大的不同:

的MySQL

SET FOREIGN_KEY_CHECKS=0;

的PostgreSQL

实际上并不太确定,但可能会涉及禁用触发器。

1 个答案:

答案 0 :(得分:1)

这种功能非常符合供应商特定 - 很难对这样的功能进行标准化。

但是既然你只是在两个数据库中寻找支持,你可以自己动手:

void disableForeignKeys(Configuration configuration) {
    switch (configuration.family()) {
        case MYSQL:
            DSL.using(configuration).execute("set foreign_key_checks=0");
            break;
        case POSTGRES:
            ...
    }
}