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

MySQL:Bạn không thể chỉ định 'nhiệm vụ' của bảng mục tiêu để cập nhật trong mệnh đề FROM

Bạn có thể bọc nó trong một truy vấn con như vậy. Vấn đề là MySQL không thể cập nhật các hàng mà nó cũng đang truy vấn. Điều này sẽ làm cho MySQL sử dụng một bảng tạm thời để lưu trữ id bạn muốn xóa.

DELETE FROM tasks
WHERE tasks.id IN 
(
SELECT id FROM
(
SELECT tasks.id
FROM tasks 
    JOIN deadlines ON deadlines.id = deadline_id
WHERE DATE_ADD(tasks.created_at, INTERVAL deadlines.duration DAY) <= NOW()
) AS taskstodelete
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gán cùng một giá trị tham số nhiều lần trong thực thi pdo

  2. Sử dụng backquote / backticks cho các truy vấn mysql

  3. MYSQL xóa tất cả các kết quả có số lượng (*) =1

  4. So sánh thời gian chuyển đổi dự phòng proxy cơ sở dữ liệu - ProxySQL, MaxScale và HAProxy

  5. MySQL Làm thế nào để CHỌN dữ liệu từ bảng được ghi lại ngày hôm nay?