Tôi sử dụng Postgresql với phần mở rộng PostGIS cho phân tích không gian đặc biệt. Tôi thường xây dựng và phát hành các truy vấn SQL bằng tay từ bên trong psql. Tôi luôn quấn một phiên phân tích trong một giao dịch, vì vậy nếu tôi đưa ra một truy vấn phá hoại, tôi có thể cuộn nó lại.Tôi có thể yêu cầu Postgresql bỏ qua các lỗi trong một giao dịch
Tuy nhiên, khi tôi đưa ra truy vấn có lỗi, nó sẽ hủy giao dịch. Mọi truy vấn khác gợi ý cảnh báo sau:
ERROR: current transaction is aborted, commands ignored until end of transaction block
Có cách nào để tắt hành vi này không? Đó là mệt mỏi để rollback giao dịch và chạy lại truy vấn trước đó mỗi khi tôi thực hiện một lỗi đánh máy.
biến ON_ERROR_ROLLBACK thực hiện chính xác những gì tôi muốn :) – fmark
'ON_ERROR_ROLLBACK' trông giống như một tính năng của máy khách psql, chứ không phải postgres (vì vậy bạn không thể sử dụng nó từ ứng dụng cơ sở dữ liệu, chỉ từ dòng lệnh). – Glyph
@Glyph: vâng, đó là một tính năng cho psql, nó đặc biệt hướng tới việc sử dụng tương tác - đó là kịch bản của OP. Thật khó cho tôi để nghĩ về một kịch bản ứng dụng khi hành vi mong muốn sẽ có ý nghĩa. – leonbloy