我如何使用Perl创建一个Postgres数据库?这在Perl Postgres DBI驱动程序
DBD::Pg
(或几乎任何其他地方)中都未被记录。我需要能够从我的程序中创建一个临时数据库,而不是必须使用psql或pgAdmin来创建数据库。DBD::Pg
(或几乎任何其他地方)中都未被记录。我需要能够从我的程序中创建一个临时数据库,而不是必须使用psql或pgAdmin来创建数据库。技巧在于使用您安装Postgres时可能拥有的“postgres”数据库(如果您没有“postgres”数据库,那么您可能知道原因)。如果您以用户“postgres”连接到“postgres”数据库,则可以发出create database SQL命令,如下所示:
my $dbh = DBI->connect("dbi:Pg:dbname=postgres", "postgres");
$dbh->do('create database "Scratch-School"');
"Scratch-School"
这样的带引号的标识符。许多工具对此存在问题。最好使用create database scratch_school
,这样名称不区分大小写,而且不需要每次都写双引号。 - user330315postgres
,也不特定于Perl。即使对于psql
和createdb
本身也是如此。 - Daniel Vérité