Zástupné symboly (tj. $1
, $2
, ...) jsou pro hodnoty. Název databáze (nebo název tabulky, název sloupce, ...) je identifikátor. Je to podobné jako rozdíl mezi názvem proměnné a hodnotou, kterou proměnná obsahuje v Ruby.
Pokud potřebujete dynamicky vložit identifikátor do nějakého SQL, musíte použít interpolaci řetězců a speciální účel quote_ident
způsob, abyste se ujistili, že jej citujete správně. Takže ještě něco takového:
db_name = conn.quote_ident(db_name)
res = conn.exec("CREATE DATABASE #{db_name}")