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

ActiveRecord ::StatementInvalid:PG InFailedSqlTransaction

Không có câu trả lời nào khác khắc phục được nguyên nhân gốc rễ của vấn đề.

Vấn đề là khi Postgres đưa ra một ngoại lệ, nó sẽ đầu độc các giao dịch trong tương lai trên cùng một kết nối.

Cách khắc phục là khôi phục giao dịch vi phạm:

begin
  ActiveRecord...do something...
rescue Exception => e
  puts "SQL error in #{ __method__ }"
  ActiveRecord::Base.connection.execute 'ROLLBACK'

  raise e
end

Xem tài liệu tham khảo.



  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 khai báo một biến trong truy vấn PostgreSQL

  2. Không thể kết nối với máy chủ PostgreSQL:không thể kết nối với máy chủ:Quyền bị từ chối

  3. Chuyển từ MySQL sang PostgreSQL - mẹo, thủ thuật và mẹo gì?

  4. Bảng tạm thời PostgreSQL

  5. Liquibase / PostgreSQL:Làm thế nào để bảo vệ bảng trường hợp chính xác?