sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan bruger man Rails med stort kolonnenavn?

Dette er ikke et ActiveRecord- eller AREL-problem, det er bare sådan, at følsomhed over for store og små bogstaver fungerer i SQL og PostgreSQL.

Identifikatorer i SQL (såsom tabel- og kolonnenavne) skelner mellem store og små bogstaver, medmindre de er citeret. Standard SQL siger, at identifikatorer uden anførselstegn foldes til store bogstaver, PostgreSQL folder dem til små bogstaver, deraf bar.maxusers i fejlmeddelelsen.

Løsningen er at citere det stødende kolonnenavn:

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

Bemærk, at du skal bruge dobbelte anførselstegn til at citere identifikatoren, da enkelte anførselstegn kun er for strenge bogstaver. Bemærk også, at identifikationscitering er databasespecifik:Standard SQL og PostgreSQL bruger dobbelte anførselstegn, MySQL bruger backticks, SQL Server bruger parenteser, ...




  1. Hvordan kan jeg se, om PostgreSQL's Autovacuum kører på UNIX?

  2. Hvad er de respektive fordele/begrænsninger ved Amazon RDS vs. EC2 med MySQL?

  3. SUPER privilegier for denne handling

  4. pyodbc + MySQL + Windows:Datakildenavn blev ikke fundet og ingen standarddriver angivet