Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL ERROR 1046 (3D000):Không có cơ sở dữ liệu nào được chọn trên truy vấn cập nhật

Bạn có các trường được đặt tên không chính xác, nhưng ngay cả khi bạn sửa chúng, đây là lỗi trong MySQL điều đó sẽ không cho phép bạn làm điều đó nếu bạn không có cơ sở dữ liệu mặc định.

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();

Vấn đề là riêng đối với UPDATE với các truy vấn lồng nhau và không có cơ sở dữ liệu mặc định (SELECT hoặc các truy vấn lồng nhau hoặc cơ sở dữ liệu mặc định hoạt động tốt)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bắt lửa đọc dữ liệu từ mysql song song

  2. Cách thiết lập sao chép không đồng bộ từ Galera Cluster sang máy chủ MySQL độc lập với GTID

  3. mối quan hệ nhiều-nhiều trong học thuyết

  4. So sánh cấu trúc của hai cơ sở dữ liệu?

  5. Làm cách nào để xuất lược đồ MySQL với dữ liệu?