如何在PostgreSQL中加载Chinook数据库?

如何在PostgreSQL中加载Chinook数据库?,postgresql,utf-8,Postgresql,Utf 8,Chinook数据库创建脚本的文本字段中包含所有西文字符,因此我无法将它们插入UTF-8上的新PostgreSQL数据库集 PgAdmin III也无法加载脚本(使用SQlite也可以)。对此的简短回答是使用John Atten的版本,该版本可在他的github上获得。下面是关于如何运行此功能的简短指南 以下假设您已经安装并启动了PostgreSQL实例 下载SQL脚本 可以找到Chinook脚本的官方版本。然而,在撰写本文时,表名和列名的标准目前遵循其他标准。John Atten修改了官方版本

Chinook数据库创建脚本的文本字段中包含所有西文字符,因此我无法将它们插入UTF-8上的新PostgreSQL数据库集


PgAdmin III也无法加载脚本(使用SQlite也可以)。

对此的简短回答是使用John Atten的版本,该版本可在他的github上获得。下面是关于如何运行此功能的简短指南

以下假设您已经安装并启动了PostgreSQL实例

下载SQL脚本 可以找到Chinook脚本的官方版本。然而,在撰写本文时,表名和列名的标准目前遵循其他标准。John Atten修改了官方版本以遵循PostgreSQL标准,例如使用串行类型,并且它是可用的。这是我用于此过程的版本

创建数据库 运行命令以创建要在其中存储chinook数据库的数据库。为了简单起见,这一个被命名为chinook

$ createdb chinook
$
使用psql运行下载的文件 psql可用于在新创建的数据库上运行创建代码。如果在远程数据库上操作,请用连接字符串替换chinook

-1将整个文件作为事务运行,确保不会在服务器上获得部分完成的数据库

&>errorlog.txt将结果输出存储到文件errorlog.txt中

$ psql chinook -1 -f ~/Path/To/Download/chinook_pg_serial_pk_proper_naming.sql &>errorlog.txt
$
测试数据库以确保数据已加载 您现在应该检查数据是否正确加载。您可以使用PGAdmin或Postico,但可以使用psql的\d命令从命令行轻松检查。以下是一个例子:

再次,如果远程连接,请使用连接字符串替换chinook


具有UTF-8的数据库将能够存储“所有西文字符”。你到底犯了什么错误?你试过用psql而不是pgAdmin吗?
psql-f Chinook\u PostgreSql.sql
对我有效(在创建数据库之后)。我的Chinook数据库的编码是:UTF8',LC\u COLLATE='en\u GB\u UTF-8',LC\u TYPE=同上。所以我有一个错误:sql脚本存储在ISO-8859-1中,您需要更改您的
客户机编码
,以反映这一点
$ psql chinook
psql (10.1)
Type "help" for help.

chinook=# \d
                   List of relations
 Schema |              Name              |   Type   |  Owner
--------+--------------------------------+----------+----------
 public | actor                          | table    | pmitdev1
 public | actor_actor_id_seq             | sequence | pmitdev1
 public | album                          | table    | pmitdev1
 public | album_album_id_seq             | sequence | pmitdev1
 public | artist                         | table    | pmitdev1
 public | artist_artist_id_seq           | sequence | pmitdev1
 public | category                       | table    | pmitdev1
 public | category_category_id_seq       | sequence | pmitdev1
 public | customer                       | table    | pmitdev1
 public | customer_customer_id_seq       | sequence | pmitdev1
 public | employee                       | table    | pmitdev1
 public | employee_employee_id_seq       | sequence | pmitdev1
 public | film                           | table    | pmitdev1
 public | film_actor                     | table    | pmitdev1
 public | film_category                  | table    | pmitdev1
 public | film_film_id_seq               | sequence | pmitdev1
 public | genre                          | table    | pmitdev1
 public | genre_genre_id_seq             | sequence | pmitdev1
 public | invoice                        | table    | pmitdev1
 public | invoice_invoice_id_seq         | sequence | pmitdev1
 public | invoice_line                   | table    | pmitdev1
 public | invoiceline_invoiceline_id_seq | sequence | pmitdev1
 public | media_type                     | table    | pmitdev1
 public | mediatype_mediatype_id_seq     | sequence | pmitdev1
 public | playlist                       | table    | pmitdev1
 public | playlist_playlist_id_seq       | sequence | pmitdev1
 public | playlist_track                 | table    | pmitdev1
...