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

Tôi muốn một trình kích hoạt để XÓA khỏi 2 bảng trong MySQL

Xóa khỏi hai bảng cùng một lúc bằng Trình kích hoạt:

Các trình kích hoạt được sử dụng để thực thi tính toàn vẹn của dữ liệu trong các bảng. Bạn có thể sử dụng trình kích hoạt để xóa khỏi bất kỳ số lượng bảng nào cùng một lúc.

Trước khi khởi tạo trình kích hoạt, chúng ta cần tạm thời thay đổi toán tử dấu phân tách mysql vì trình kích hoạt sử dụng dấu chấm phẩy ; toán tử để chỉ định nhiều lệnh sql trong trình kích hoạt.

Bước 1 Thay đổi dấu phân cách hiện tại:

delimiter $$

Bước 2 Tạo trình kích hoạt:

CREATE TRIGGER `blog_before_delete`     
  AFTER DELETE ON `blog`     
  FOR EACH ROW     
BEGIN
  DELETE FROM blog_tags where blogid = OLD.id;
  DELETE FROM blog_comments where blogid = OLD.id;
END
$$

Bước 3 Khôi phục dấu phân cách trước đó:

delimiter ;

Giải thích:

OLD là một từ khóa nội dung và đề cập đến hàng trong bảng blog mà chúng tôi đang xóa. Mysql chạy trình kích hoạt blog_before_delete bất cứ khi nào chúng tôi xóa một mục trong bảng blog. Tôi kích hoạt không thành công, sau đó xóa được khôi phục lại. Điều này giúp đảm bảo Tính nguyên tử, tính nhất quán, tính cách ly và độ bền trong cơ sở dữ liệu của chúng tôi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm địa lý (Khoảng cách) trong PHP / MySQL (Hiệu suất)

  2. Cách thực hiện ràng buộc duy nhất hoạt động với giá trị NULL trong MySQL

  3. MySQL:Có thể group_concat nhiều hàng không?

  4. Xóa hàng khỏi chế độ xem có xóa hàng khỏi bảng cơ sở - MySQL không?

  5. Mất kết nối với máy chủ MySQL khi cố gắng kết nối với máy chủ MySQL từ xa