我安装Cygwin
了Perl并Postgresql
启用了包.
然后输入:
/usr/bin/cygserver-config (This will install the service)
Run Code Online (Sandbox Code Playgroud)
然后输入:
net start cygserver(This starts the service)
Run Code Online (Sandbox Code Playgroud)
接下来我需要在Cygwin中启用Postgresql,所以我尝试了下面提到的命令:
cygrunsrv -S cygserver
initdb -D /usr/share/postgresql/data
pg_ctl start -D /usr/share/postgresql/data -l /var/log/postgresql.log
createdb
psql
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
$ initdb -D /usr/share/postgresql/data
-bash: initdb: command not found
$ pg_ctl start -D /usr/share/postgresql/data -l /var/log/postgresql.log
-bash: pg_ctl: command not found
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何做对.
use DBI;
my $db_host = 'localhost';
my $db_user = 'postgres';
my $db_pass = '12345';
my $db_name = 'postgres';
my $db = "dbi:pg:dbname=${db_name};host=${db_host}";
$dbh = DBI->connect($db, $db_user, $db_pass,{ RaiseError => 1, AutoCommit => 0 }) || die "Error connecting to the database: $DBI::errstr\n";
my $query = "SELECT * FROM random_table";
$ref = $dbh->selectcol_arrayref($query);
print join("\n", @$ref);
Run Code Online (Sandbox Code Playgroud)
当我执行这个文件.我收到一个错误.它说:
DBD :: pg初始化失败:无法通过包"DBD :: pg"找到对象方法"driver"
我是否需要安装一些驱动程序来连接数据库..?
我的表格如下
ID | Name | City
------ | ------ | ------
1 | ABC | London, Paris
1 | ABC | Paris
1 | ABC | Japan
2 | XYZ | Delhi
2 | XYZ | Delhi, New York
Run Code Online (Sandbox Code Playgroud)
我的输出必须是这样的:
ID | Name | City
------ | ------ | ------
1 | ABC | London, Paris, Japan
2 | XYZ | Delhi, New York
Run Code Online (Sandbox Code Playgroud)
我认为这是一个两步过程:
连接每个ID和名称的所有唯一城市.示例:对于ID 1和名称ABC城市将是伦敦,巴黎,日本
通过对ID和名称进行分组来更新连接的字符串.
我只能为一个组执行此操作,但如何对表中的所有不同组执行此操作?
此外,当我想将字符串更新为与ID和Name匹配的所有行时,光标会在此处显示.
任何有关这方面的帮助或想法将不胜感激.