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

Làm thế nào để sử dụng Rails với tên cột viết hoa?

Đây không phải là vấn đề ActiveRecord hoặc AREL, đây chỉ là cách hoạt động của phân biệt chữ hoa chữ thường trong SQL và PostgreSQL.

Các số nhận dạng trong SQL (chẳng hạn như tên bảng và cột) không phân biệt chữ hoa chữ thường trừ khi chúng được trích dẫn. SQL tiêu chuẩn nói rằng các số nhận dạng chưa được trích dẫn được xếp thành chữ hoa, PostgreSQL gấp chúng thành chữ thường, do đó bar.maxusers trong thông báo lỗi.

Giải pháp là trích dẫn tên cột vi phạm:

.having('COUNT(foo.id) > bar."maxUsers"')

Lưu ý rằng bạn phải sử dụng dấu ngoặc kép để trích dẫn mã định danh vì dấu ngoặc kép đơn chỉ dành cho các ký tự chuỗi. Cũng lưu ý rằng trích dẫn mã định danh là dành riêng cho cơ sở dữ liệu:SQL tiêu chuẩn và PostgreSQL sử dụng dấu ngoặc kép, MySQL sử dụng dấu ngoặc kép, SQL Server sử dụng dấu ngoặ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. Làm thế nào để cài đặt PLV8 trên Windows?

  2. Làm cách nào để tạo một hàm băm của tập kết quả trong Hậu kỳ?

  3. Làm cách nào để nhận hỗ trợ LISTEN / NOTIFY không đồng bộ / hướng sự kiện trong Java bằng cách sử dụng cơ sở dữ liệu Postgres?

  4. psql:FATAL:role postgres không tồn tại (với tùy chọn -h localhost)

  5. Làm thế nào để tạo một cơ sở dữ liệu với flyway?