从我的工作中,我试图创建一个表(如果不存在),通过从我的talend作业中加入几个表(如创建表xx select * from t1 inner t2等)来选择几个记录。我正在使用tMysqlRow组件。我不确定,它是用于DDL操作的正确组件.. !!请建议使用正确的组件。
使用tMysqlRow,有时工作正常但不一致。有时它失败了“java.sql.SQLException:超过锁定等待超时;尝试重新启动事务”。是因为我的查询花了太长时间,还是使用tMysqlRow进行DDL操作是错误的?我在哪里做错了?
答案 0 :(得分:2)
我能够找出问题。问题是,我试图将表放在tMysqlRow组件中并将其连接到另一个tMysqlRow以再次创建它。这两个不是单个tMysqlConnection对象。所以一个人正在等待另一个人提交。
有一次,我让这两个tMySqlRow组件使用相同的tMySqlConnection对象,问题得到了解决。
这里要学习的是,所有这些都应该使用相同的连接对象。