mariaDB版本= 10.0.17-mariadb-log
我目前无法选择数据库。
use dbname; --->> DO NOT USE THIS (if I use this query, it works well)
UPDATE dbname.t_co_sec_grade A INNER JOIN (
SELECT sec_id
, upper_sec_id
, sec_depth
, sec_name_kr
, IF(upper_sec_id = '111', '004', upper_sec_id) AS modify_upper_sec_id
, sec_depth - 1 AS modify_sec_depth
FROM dbname.t_co_sec_grade ABC INNER JOIN (SELECT @pv := '111') AS .initialisation
WHERE find_in_set(upper_sec_id, @pv) > 0
AND @pv := CONCAT(@pv, ',', sec_id)
) B ON A.sec_id = B.sec_id
SET A.upper_sec_id = B.modify_upper_sec_id, A.sec_depth = B.modify_sec_depth;
为什么我要获得"未选择数据库"?
这是较早的MariadB/MySQL版本由INNER JOIN (SELECT @pv := '111')
引起的问题。您可以更新到已解决此问题的最新版本。
如果不包括"使用dbname";行确实会遇到更新的问题。
如果您试图在不使用的情况下编写查询,则可以使用完全合格的行。
UPDATE [dbname].[schema].[table]