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

Làm cách nào để hủy thao tác INSERT trong trình kích hoạt MySql?

Tôi đã bắt gặp điều này và mặc dù giải pháp này hoạt động sau đó, tôi đã gặp lại những gì tôi cảm thấy giống như một giải pháp tốt hơn. Tôi nghi ngờ đây không phải là một lựa chọn khi câu hỏi này đã được trả lời ban đầu.

CREATE TRIGGER `TestTable_SomeTrigger`
BEFORE UPDATE ON `test_table`
FOR EACH ROW
BEGIN
    DECLARE msg VARCHAR(255);
    IF (SomeTestToFail = "FAIL!") THEN
        set msg = "DIE: You broke the rules... I will now Smite you, hold still...";
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
    END IF;

    -- Do any other code here you may want to occur if it's all OK or leave blank it will be
    --  skipped if the above if is true
END$$

Thao tác này bây giờ sẽ trả về một thông báo lỗi đẹp (hoặc xấu!) Mà bạn có thể mắc phải. Để biết thêm thông tin về điều này, hãy xem:http://dev.mysql.com/doc/refman/5.5/en/signal.html

Tôi hy vọng điều này sẽ giúp ích cho người khác!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lấy ngày và giờ hiện tại trong MySQL

  2. Nhập dữ liệu vào cơ sở dữ liệu MySQL

  3. Quyền của người dùng MySQL

  4. Sử dụng phần mở rộng không gian MySQL để chọn các điểm bên trong vòng tròn

  5. Cách kết nối với MySQL bằng Microsoft .NET