首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DdlUtils:延迟插入

DdlUtils:延迟插入
EN

Stack Overflow用户
提问于 2011-06-27 19:49:02
回答 2查看 190关注 0票数 2

为了将数据库从oracle迁移到mysql,我使用ddlutils。迁移模式符合我的目的,但是插入数据会因为缺少行而失败。日志文件中的以下摘录对此进行了说明:

代码语言:javascript
复制
[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。有没有人面临同样的问题?有没有人知道问题出在哪里?

EN

回答 2

Stack Overflow用户

发布于 2011-08-05 16:49:07

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

因此,如果具有包含某些唯一非主键字段主表,且具有引用(外键)到唯一非主键字段的明细表,则DDLUtils无法将详细信息记录链接到主表,因此根本无法插入详细信息记录。

这就是DDLUtils版本1.0中的情况。

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

致以最好的问候Kari Surakka

票数 1
EN

Stack Overflow用户

发布于 2011-06-27 20:14:37

代码语言:javascript
复制
INSERT INTO `RECORDSTATUS` (`NAME_ID`, RECORDSTATUS_ID`, `NAME`, `SORTVALUE`) VALUES 

应该是:

代码语言:javascript
复制
INSERT INTO `RECORDSTATUS` (`NAME_ID`, `RECORDSTATUS_ID`, `NAME`, `SORTVALUE`) VALUES 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6492378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档