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}")