sql >> データベース >  >> RDS >> Mysql

MySQLエラー1046(3D000):更新クエリでデータベースが選択されていません

    間違った名前のフィールドがありますが、それらを修正しても、これはMySQLのバグです。 デフォルトのデータベースがない場合は、それを実行できません。

    update  test.object1 p
    join    (
            select  ur.id_object1, sum(ur.score * ur.weight) as total, count(*) as weight
            from    (
                    select  lur.*
                    from    (
                            select s.id_object1, s.id_object2, s.dt, s.score, 1 as weight
                            from   test.score as s
                            join   test.object1 as o1
                            using  (id_object1)
                            where  s.dt > o1.dt
                            order by
                                   s.id_object1, s.id_object2, s.dt desc
                            ) as lur
                    group by
                            lur.id_object1, lur.id_object1, date(lur.dt)
                    order by
                            lur.id_object1, lur.id_object1
                    ) as ur
            group by ur.id_object1
            ) as r
    USING   (id_object1)
    SET     p.total = p.total + r.total,
            p.weight = p.weight + r.weight,
            p.dt = now();
    

    この問題はUPDATEに固有のものです 二重ネストされたクエリがあり、デフォルトのデータベースがない(SELECT または、単一ネストのクエリまたはデフォルトのデータベースが正常に機能します)



    1. オブジェクト'xxxxxxx'、データベース'zzzzzzz'、スキーマ'dbo'に対するEXECUTE権限が拒否されました

    2. MySQLのクエリによって返される各行のストアドプロシージャを呼び出す

    3. データベースで継承を効果的にモデル化するにはどうすればよいですか?

    4. SQLAlchemy-テスト用のSQLiteと開発用のPostgresql-移植方法は?