2017-04-13 108 views
1

我试图运行以下脚本,可以同时创建一个数据库和一个表。因为我使用的是PgAdminIII,所以我必须使用已有数据库的查询工具。我认为这可能会导致问题。因此,这是我的脚本怎么一回事:PgAdminIII - 如何在一个脚本中创建数据库和表格

CREATE DATABASE homework; 

CREATE TABLE exampletable (
    id int NOT NULL, 
    description text, 
    PRIMARY KEY(id) 
); 

,但我得到这个错误: ERROR:CREATE DATABASE不能从功能或多命令字符串来执行 **********错误**********

错误:25001

任何帮助表示赞赏:CREATE DATABASE不能从功能或多命令字符串 SQL状态下执行!爱你们!

+0

为什么你甚至想这样做呢?你不能跨数据库引用,你会得到这样的错误:'错误:跨数据库引用没有实现:“test1.public.exampletable”'所以即使你要创建数据库在多命令字符串,那么你仍然wouldn'除非你使用类似dblink的东西,否则不能在其中创建任何东西。 –

回答

0

这是因为PgAdmin3将查询包装在BEGIN ... END事务块中。如果你没有PSQL内同样的事情,你可以这样做:

CREATE DATABASE homework; 

\c homework; 

CREATE TABLE exampletable (
id int NOT NULL, 
description text, 
PRIMARY KEY(id) 
); 

由于PSQL将执行在自动提交模式下这些语句,它们将各自单独的事务执行,将创建该表为你期望。

+0

psql与pgadmin不一样吗?我在哪里下载psql? – user3400351

0

选择&在查询工具中一次执行每个CREATE SQL。