PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Ruby :Comment remplacer dynamiquement les paramètres dans la gemme PG native

Espaces réservés (c'est-à-dire $1 , $2 , ...) sont pour les valeurs. Un nom de base de données (ou nom de table, nom de colonne, ...) est un identifiant. Ceci est similaire à la différence entre un nom de variable et la valeur que la variable contient dans Ruby.

Si vous avez besoin d'insérer dynamiquement un identifiant dans certains SQL, vous devez utiliser l'interpolation de chaîne et le but spécial quote_ident méthode pour vous assurer que vous le citez correctement. Donc quelque chose comme ça :

db_name = conn.quote_ident(db_name)
res     = conn.exec("CREATE DATABASE #{db_name}")