Mysql
 sql >> база данни >  >> RDS >> Mysql

В MySQL мога ли да върна изтрити редове след изтриване?

MySQL няма еквивалента на output или returning клаузи, предоставени от други бази данни. Най-добрият ви залог е временна маса:

CREATE TABLE TheDeletedIds as
    SELECT t1.id
    FROM t1 LEFT JOIN
         t2 
         ON t1.t2_id = t2.id
    WHERE t2.id IS NULL OR t2.is_valid = false;

DELETE t1
    FROM t1
    WHERE t1.id IN (SELECT id FROM TheDeletedIds);

Тогава таблицата, която току-що създадохте, има идентификаторите, които искате.

Забележка:Важно е да използвате новосъздадената таблица за изтриването. В противен случай друга нишка/процес може да промени данните между момента на заснемане на идентификаторите и момента, в който ги изтриете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да нулирате паролата на администратор на WordPress чрез командния ред на MySQL

  2. Как да INNER JOIN 3 таблици с помощта на CodeIgniter

  3. Регистрирайте всички заявки в mysql

  4. Получаване на йерархични данни от саморефериращи се таблици

  5. MySQL - DATE_ADD месечен интервал