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;
我写了这个查询,似乎没有完成。
架构:
t_lX3pw和t_ro2EX都有大约80,000行。 ids是相同的,它只是在多个表中拆分的csv数据。我试图连接几个列并将它们放入由' ----'
分隔的单个列中我收到以下错误:
Lock wait timeout exceeded; try restarting transaction
查询有什么问题?
答案 0 :(得分:0)
你使用innodb吗?
Linux:在mysql配置(/etc/my.cnf或/etc/mysql/my.cnf)中,插入/编辑此行
innodb_lock_wait_timeout = 50
答案 1 :(得分:0)
尝试这种方式:
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);
可以更快,更高效。