2017-03-13 32 views
0

我想知道是否有辦法在jOOQ中以不可知的方式禁用不同數據庫中的數據庫約束。例如,禁用在MySQL和PostgreSQL外鍵約束不同頗多:jOOQ:與數據庫無關的禁用約束的方法

MySQL的

SET FOREIGN_KEY_CHECKS=0;

PostgreSQL的

實際上沒有太確定,但可能涉及禁用觸發器。

回答

0

這種功能非常特定於供應商 - 很難在這樣的功能上實現標準化。

但是,因爲你只在兩個數據庫尋求支持,你可以滾你自己:

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

嗨盧卡斯,我想盡可能多。感謝您的澄清。 –