Mysql 此查询似乎尚未完成。怎么了?

Mysql 此查询似乎尚未完成。怎么了?,mysql,Mysql,我写了这个查询,但它似乎没有完成 模式: t_lX3pw和t_ro2EX都有大约80000行。ID是相同的,只是csv数据被分割到多个表中。我试图将两个列合并,并将它们放入一个由'---'指定的列中 我得到以下错误: Update t_ro2EX inner join t_lX3pw on t_lX3pw.id = t_ro2EX.id set t_ro2EX.column_bcde = concat_ws('----', t_lX3pw.column_5, t_lX3pw.c

我写了这个查询,但它似乎没有完成

模式:

t_lX3pw和t_ro2EX都有大约80000行。ID是相同的,只是csv数据被分割到多个表中。我试图将两个列合并,并将它们放入一个由'---'指定的列中

我得到以下错误:

Update t_ro2EX 
    inner join t_lX3pw on t_lX3pw.id = t_ro2EX.id
    set t_ro2EX.column_bcde = concat_ws('----', t_lX3pw.column_5, t_lX3pw.column_7) 
where t_lX3pw.column_20 > 0;
查询有什么问题?

您使用innodb吗

Linux:在mysql配置(/etc/my.cnf或/etc/mysql/my.cnf)中,插入/编辑此行

innodb_lock_wait_timeout=50

请尝试以下方法:

Lock wait timeout exceeded; try restarting transaction

可以更快更高效。

查看正在运行的进程的建议:建议退出MySQL并转移到适当的数据库,如Postgres。。。嗯,有一个建议是增加答案中的超时时间。哈哈。使用PostreSQL做这件事要容易得多,因为它不需要时间。我试着用PostgreSQL对MySQL进行基准测试,因为我们现在选择的是数据库。建议是受欢迎的:这不愚蠢吗?我的意思是,它为什么要这么做呢?不是责备你,而是责备你
UPDATE t_ro2EX 
    INNER JOIN t_lX3pw 
    ON t_lX3pw.id = t_ro2EX.id
      AND t_lX3pw.column_20 > 0
    SET t_ro2EX.column_bcde = concat_ws('----', t_lX3pw.column_5, t_lX3pw.column_7);