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

Colonna camelCase nel database postgresql in rails (ActiveRecord)

In Postgres (così come nello standard ISO/ANSI del linguaggio SQL), i nomi degli oggetti non fanno distinzione tra maiuscole e minuscole.

Quindi objectName è lo stesso di objectname , e devi tenerne conto quando decidi di utilizzare nomi con custodia di cammello.

Puoi dire a Postgres che vuoi usare il nome con distinzione tra maiuscole e minuscole:aggiungi semplicemente virgolette intorno al nome:"objectName" . Tieni presente che in seguito non sarai in grado di utilizzare oggetti come objectName , proverà semplicemente a trovare objectname e non lo troverà, innescando un errore, quindi l'uso delle virgolette doppie sarà obbligatorio.

Inoltre, ci sono alcuni avvertimenti minori quando si lavora con nomi di oggetti con distinzione tra maiuscole e minuscole tra virgolette (ad esempio, \d di psql il comando elencherà il tuo oggetto in questo modo:"public.objectName" , che non è proprio corretto, il nome corretto è "public"."objectName" , ecc).

In alcuni progetti avevo nomi di colonne/tabelle in stile cammello ed è sempre stato un po' doloroso, specialmente quando un nuovo sviluppatore ha iniziato a lavorare con un progetto del genere.

Quindi suggerirei di usare sempre i nomi sottocordati in SQL (object_name ).