sql >> Databáze >  >> RDS >> Mysql

MySQL:V klauzuli FROM nemůžete specifikovat 'úlohy' cílové tabulky pro aktualizaci

Můžete to takto zabalit do poddotazu. Problém je v tom, že MySQL nemůže aktualizovat řádky, na které se také dotazuje. To způsobí, že MySQL bude implicitně používat dočasnou tabulku k ukládání ID, která chcete odstranit.

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. Co když smažu ibdata1 v mysql (LINUX)

  2. Proč je vkládání MySQL InnoDB tak pomalé?

  3. Jaký je ekvivalent PostgreSQL pro ISNULL()

  4. mysqli::mysqli():(HY000/2002):Nelze se připojit k místnímu serveru MySQL přes socket 'MySQL' (2)