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

Trong MySQL, tôi có thể trả lại các hàng đã xóa sau khi xóa không?

MySQL không tương đương với output hoặc returning các điều khoản được cung cấp bởi các cơ sở dữ liệu khác. Đặt cược tốt nhất của bạn là một bảng tạm thời:

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

Sau đó, bảng bạn vừa tạo có id bạn muốn.

Lưu ý:Điều quan trọng là sử dụng bảng mới tạo để xóa. Nếu không, một chuỗi / quy trình khác có thể thay đổi dữ liệu giữa thời điểm bạn chụp id và thời điểm bạn xóa chúng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Lấy tên cột hoặc bí danh từ truy vấn

  2. Thoát chuỗi bằng python mysql.connector

  3. Kết hợp chéo giữa nhiều lược đồ trong MySQL. Đặc quyền và hiệu suất

  4. Nâng cao tiêu chuẩn về quản lý MySQL, MariaDB, PostgreSQL &MongoDB

  5. LỖI 1118 (42000) Kích thước hàng quá lớn