为什么会出现此查询“未选择数据库”

时间:2019-05-21 00:26:31

标签: mariadb

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;

为什么会显示“未选择数据库”?

2 个答案:

答案 0 :(得分:0)

如果不包括“ use dbname;”行,您的更新确实会遇到问题。

如果您尝试不使用查询而编写查询,则可以使用完全限定的行。

UPDATE [dbname].[schema].[table]

答案 1 :(得分:0)

这是INNER JOIN (SELECT @pv := '111')引起的MariaDB / MySQL早期版本的问题。您可以更新到已解决此问题的最新版本。