Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thực hiện xóa đa bảng (Multi-table DELETE) trong MySQL

Phương pháp

Chạy hai câu lệnh DELETE riêng biệt trên hai bảng, hoặc dùng cú pháp DELETE t1, t2 FROM t1 JOIN t2 ... (MySQL hỗ trợ multi-table delete). Ví dụ dưới dùng hai câu lệnh riêng cho rõ ràng.

1. Tạo bảng 1

mysql> create table DemoTable1 (
    Id int,
    Name varchar(20)
);
Query OK, 0 rows affected (0.63 sec)

2. Chèn dữ liệu bảng 1

mysql> insert into DemoTable1 values(1,'Chris'),(2,'David'),(3,'Bob');

3. Tạo bảng 2

mysql> create table DemoTable2 (
    ClientId int,
    ClientName varchar(20)
);
Query OK, 0 rows affected (1.19 sec)

4. Chèn dữ liệu bảng 2

mysql> insert into DemoTable2 values(101,'Mike'),(110,'Bob'),(120,'Adam');

5. Xóa tên 'Bob' trên cả hai bảng

mysql> delete from DemoTable1 where Name = 'Bob';
Query OK, 1 row affected (0.23 sec)
mysql> delete from DemoTable2 where ClientName = 'Bob';
Query OK, 1 row affected (0.27 sec)

6. Kiểm tra bảng 1

mysql> select * from DemoTable1;
+------+-------+
| Id   | Name  |
+------+-------+
| 1    | Chris |
| 2    | David |
+------+-------+
2 rows in set (0.00 sec)

7. Kiểm tra bảng 2

mysql> select * from DemoTable2;
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 101      | Mike       |
| 120      | Adam       |
+----------+------------+
2 rows in set (0.00 sec)

Lưu ý: Nên bọc trong transaction để đảm bảo tính nguyên tử.