Tôi yêu các trình kích hoạt vì một lý do - chúng chỉ hoạt động. Tôi ghét gây ra vì một lý do - khi chúng không hoạt động, hãy quên việc cố gỡ lỗi. O sự thất vọng ngọt ngào.Gỡ lỗi trình kích hoạt MySQL
Về cơ bản, tôi muốn xem truy vấn cập nhật, xóa, chèn, v.v. Tôi muốn thấy rằng truy vấn ... một nơi nào đó, trong thiết bị đầu cuối của tôi hoặc một bản ghi, chính xác như thế nào và khi nào MySQL thực hiện nó, và có thể bất kỳ đầu ra/lỗi tương ứng. Suy nghĩ/hack?
Tôi đang cố gắng gỡ lỗi truy vấn cập nhật với một vài lần tham gia và nội dung nào không. Truy vấn của tôi phức tạp hơn nhiều, nhưng ngắn gọn, đây là một ví dụ.
DELIMITER |
CREATE TRIGGER ireallyhateyourightnow AFTER UPDATE ON watch_this_table
FOR EACH ROW BEGIN
IF (OLD.my_value != NEW.my_value) THEN
update
my_table
set
my_column = NEW.my_value;
END IF;
END|
DELIMITER ;
Dưới đây là một số ngữ cảnh bổ sung có thể giúp ảnh hưởng đến đề xuất hoặc câu trả lời. Một lần nữa, tôi ít quan tâm đến ngữ nghĩa/cú pháp và quan tâm hơn đến việc thấy MySQL chạy truy vấn nhưng bằng mọi cách, tôi mở cho bất cứ điều gì vào thời điểm này.
- Strace không hoạt động/hiển thị truy vấn.
- Môi trường không sao chép NHƯNG nếu nhật ký thùng hiển thị các câu lệnh kích hoạt, tôi chắc chắn sẽ thiết lập điều này.
- "Hiển thị danh sách xử lý đầy đủ" hiển thị thực thi kích hoạt và/hoặc câu lệnh được thực thi bên trong (tôi không bao giờ thấy chúng sau khi chạy hiển thị danh sách xử lý đầy đủ nhanh như perl có thể chạy nó nhưng tôi có thể thiếu nó)?
- Nhật ký truy vấn chung không hiển thị các truy vấn này (chắc chắn không phải nhật ký lỗi).
- Tôi không sử dụng bí danh (nữa).
- Không có lỗi cú pháp khi tạo trình kích hoạt.
- Câu lệnh IF hoạt động.
- Khi tôi chèn các giá trị MỚI vào bảng "kiểm tra/tạm thời" và chạy truy vấn cập nhật theo cách thủ công (tôi thậm chí đã thực sự chèn toàn bộ truy vấn cập nhật)
- Tôi không thể hiển thị bạn truy vấn nhưng như tôi vừa đề cập, nó hoạt động khi tôi chạy thủ công nếu điều đó giúp.
- Tôi đã gỡ bỏ tất cả các ký tự có sai sót, các tab, xuống dòng, dòng mới vv
- Các ổ cắm MySQL sẽ chỉ hiển thị kết nối local/dữ liệu nhưng không MySQL hoạt động nội bộ, tôi nghĩ vậy.
- MyISAM để nhật ký INNODB không phải là tùy chọn
- lsof dường như không hiển thị bất kỳ mục đích nào khác để sử dụng.
- Tôi đang sử dụng MySQL 5.0.77 trên CentOS 5.5.
Yea, bước vào chuyển sang màu xám. Có lẽ vì nó là một thử nghiệm? – Justin
Lệnh 'Bước vào' phải hoạt động từ mã thủ tục được lưu trữ. Bạn đã làm theo hướng dẫn từng bước (Làm thế nào để: Bắt đầu kích hoạt gỡ lỗi)? – Devart
Cảm ơn bạn Devart! Phần mềm rất đẹp. – Justin