2011-09-28 30 views
10

Có cách nào để kiểm tra các truy vấn mysql, mà không sửa đổi cơ sở dữ liệu của tôi không?Mô phỏng các truy vấn mysql

Ví dụ: tôi có thể chạy delete from my_table where id=101 mà không xóa bất kỳ điều gì thực tế không? Điều gì về chèn và cập nhật?

TY

+0

Tại sao bạn cần kiểm tra chúng? –

+2

@Pekka 웃 Để kiểm tra thủ công việc cập nhật đang làm những gì bạn nghĩ rằng nó nên làm trước khi bạn thực sự làm điều đó. – Will

Trả lời

17

Bạn có thể bắt đầu giao dịch trước khi chạy truy vấn và sau đó quay lại sau khi chạy chúng. Lưu ý rằng để làm điều này bạn sẽ yêu cầu các bảng InnoDB hoặc XtraDb (sẽ không hoạt động trên MyISAM).

Để bắt đầu một giao dịch gửi đến MySQL tuyên bố sau:

START TRANSACTION; 

Và ở phần cuối của các truy vấn của bạn chạy báo cáo kết quả sau đây:

ROLLBACK; 

cơ sở dữ liệu của bạn sẽ không bao giờ được thay đổi từ quan điểm xem các kết nối khác. Kết nối hiện tại của bạn sẽ thấy các thay đổi cho đến khi ROLLBACK, và sau đó trạng thái ban đầu sẽ được khôi phục.

+4

Được rồi, bây giờ nếu tôi quyết định tôi thích kết quả, làm cách nào để lưu chúng? 'END TRANSACTION;'? Geez, bây giờ tôi phải đi tất cả các cách để Google ... * lang thang trở lại * Câu trả lời là ['COMMIT'] (http://dev.mysql.com/doc/refman/5.6/en/commit.html) . – Zenexer

1

Sao chép cơ sở dữ liệu của bạn vào cơ sở dữ liệu thử nghiệm hoặc tự động tạo tập lệnh nhập. Hơn bạn có thể kiểm tra bất cứ điều gì bạn muốn trên cơ sở dữ liệu thử nghiệm và khôi phục lại nó bằng cách sử dụng kịch bản hoặc nhập khẩu.

5

Nếu bạn chỉ muốn xem có bao nhiêu hàng sẽ bị xóa tại sao không thay thế 'xóa' bằng 'số đếm (*)'?

Các vấn đề liên quan