为什么会发生此查询"No database selected"



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]

最新更新