【问题标题】:SQLBuilder ForeignKeyConstraint - set cascadeSQLBuilder ForeignKeyConstraint - 设置级联
【发布时间】:2020-05-28 23:27:09
【问题描述】:

使用 API SQL Builder com.healthmarketscience.sqlbuilder

DbForeignKeyConstraint constraint = dbTable.foreignKey("fk_" + tableName + "_" + foreignTableName,
        columnList.toArray(new String[0]),
        foreignTableName,
        foreignColumnList.toArray(new String[0]));

如何设置constraint 使其能够执行ON UPDATE CASCADEON DELETE CASCADE

【问题讨论】:

  • 一个肮脏的黑客... new String[] {foreignColumnList.get(0)+ " ON UPDATE CASCADE}); 可能只是工作,但额外的ALTER TABLE ... ON UPDATE CASCADE 可能更具可读性。向图书馆制造商索要添加内容。

标签: java sqlbuilder


【解决方案1】:

对于未来的读者,此功能已添加到版本 3.0.1 中的 SQLBuilder。生成ForeignKeyConstraintClause 实例后,您可以调用setOnDeleteAction(ReferentialAction.CASCADE)(update action 也是如此)。

【讨论】:

    【解决方案2】:

    据我所知,您使用的库 (com.healthmarketscience.sqlbuilder) 不允许使用 ON UPDATE/DELETE CASCADE 声明外键约束。我检查了代码,没有实现这个功能。

    原因可能是库的作者尚未实现此功能,或者出于某种原因他们不打算实现它。您应该能够使用TRIGGER 重现该功能,但图书馆似乎也不支持这些功能。

    如果此功能对您的应用程序至关重要,您可能应该切换到允许它的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 2012-06-06
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多