PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak używać Railsów z nazwami kolumn pisanymi wielkimi literami?

To nie jest problem ActiveRecord ani AREL, tak właśnie działa rozróżnianie wielkości liter w SQL i PostgreSQL.

Identyfikatory w SQL (takie jak nazwy tabel i kolumn) nie uwzględniają wielkości liter, chyba że są cytowane. Standardowy SQL mówi, że niecytowane identyfikatory są zwijane do wielkich liter, PostgreSQL zwija je do małych liter, stąd bar.maxusers w komunikacie o błędzie.

Rozwiązaniem jest zacytowanie obraźliwej nazwy kolumny:

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

Zauważ, że musisz użyć podwójnych cudzysłowów do cytowania identyfikatora, ponieważ pojedyncze cudzysłowy dotyczą tylko literałów łańcuchowych. Należy również zauważyć, że cytowanie identyfikatora jest specyficzne dla bazy danych:standardowe SQL i PostgreSQL używają podwójnych cudzysłowów, MySQL używa backticków, SQL Server używa nawiasów, ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę zmienić istniejącą kolumnę jako Tożsamość w PostgreSQL 11.1?

  2. PostgreSQL:VACUM FULL vs pg_dump i przywracanie

  3. Korzystanie z funkcji korelacji PostgreSQL

  4. Zapytania parametryczne za pomocą psycopg2 / Python DB-API i PostgreSQL

  5. Tabela zapytań z array_agg/median WSZYSTKICH poprzednich pozycji, LAST_10, LAST_50, z wyłączeniem bieżącej pozycji