java - DdlUtils:推迟插入

标签 java mysql oracle ddlutils

为了将数据库从 oracle 迁移到 mysql,我正在使用 ddlutils。迁移模式适用于我的目的,但由于缺少行,插入数据失败。以下日志文​​件摘录对此进行了解释:

[ddlToDatabase] About to execute SQL: INSERT INTO `RECORDSTATUS` (`NAME_ID`, RECORDSTATUS_ID`, `NAME`, `SORTVALUE`) VALUES (?, ?, ?, ?)
[ddlToDatabase] Inserted bean RECORDSTATUS:RECORDSTATUS_ID=0
...
[ddlToDatabase] Defering insertion of row NAME:LANGUAGE_ID=0;NAME_ID=5941 because it is waiting for:
[ddlToDatabase]   RECORDSTATUS:RECORDSTATUS_ID=0

在数据库中,有一行RECORDSTATUS_ID=0。有人遇到过同样的问题吗?有人知道问题出在哪里吗?

最佳答案

我在从 MySql 迁移到 DerbyDB 时遇到了类似的问题。我的情况是,实际问题是 DDLUtils 只处理那些针对主键的外键。

因此,如果您有包含某些唯一非主键字段的 MASTER 表,并且您有引用(外键)到该唯一非主键字段的 DETAILS 表,DDLUtils 无法将 DETAILS 记录链接到 MASTER,因此无法插入 DETAIL完全没有记录。

这是 DDLUtils 1.0 版本中的情况。

我对代码进行了一些快速的(可能是脏的)修改,它似乎解决了这个问题。修改后的版本可以在这里下载(包括源代码):DllUtils-1.0_mod_with_src.jar .您可以自行承担使用它的风险。

最好的问候 卡里苏拉卡

关于java - DdlUtils:推迟插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6492378/

相关文章:

java - MySQL 服务器 - JDBC 连接

mysql - 简单选择组通过使用文件排序和临时,而不是索引

java - 如何在 SWT 表的列中添加超链接?

java - 如何为部署到 WebSphere Application Server 的应用程序创建生命周期监听器?

mysql - 为什么我不能删除 MySQL 数据库?

MySQL:更改表创建分区给出主键错误

sql - sql中的trunc和round函数

java - 如何从 JAVA 中的日期获取 md5 总和,例如在 oracle 中?

mysql - 使用 APEX 创建 CRUD 应用程序

java - Swing 应用程序使用扫描仪的条码阅读器