postgresql 创建数据库问题

我已经在Linux上安装好了PostgreSQL数据库,也使用命令#su–postgres将用户切换至postgres,但是在创建数据库的时候报错:"CREATEDATA... 我已经在Linux上安装好了 PostgreSQL数据库,也使用命令 # su – postgres 将用户切换至postgres,但是在创建数据库的时候报错:"CREATE DATABASE cannot be executed from a function or multi-command string" 怎么回事?分不多,先呈上50,如真解决了,再加50.
我用的是8.3.7版本的
展开
 我来答
Baby_原來
2016-01-06 · TA获得超过3402个赞
知道大有可为答主
回答量:1535
采纳率:94%
帮助的人:501万
展开全部

1、使用CREATE DATABASE

该命令将创建一个数据库PostgreSQL的shell提示符,但你应该有适当的权限来创建数据库。默认情况下,创建新的数据库将通过克隆标准系统数据库template1。

语法:

CREATE DATABASE语句的基本语法如下:

CREATE DATABASE dbname;

其中dbname是要创建的数据库的名称。

例子:

下面是一个简单的例子,这将创建testdb 在PostgreSQL模式: 

postgres=# CREATE DATABASE testdb;
postgres-#


2、使用createdb的命令

PostgreSQL命令行可执行createdb是是SQL命令CREATE DATABASE一个包装器。此命令和SQL命令CREATE DATABASE之间唯一的区别是,前者可以直接在命令行中运行,它允许的注释被添加到数据库中,全部在一个命令。

语法:

createdb语法如下所示:

createdb [option...] [dbname [description]]

参数

下表列出了参数及它们的描述。

参数名称            描述

dbname    The name of a database to create.    

description    Specifies a comment to be associated with the newly created database.    

options    command-line arguments which createdb accepts.    

选项

下表列出了命令行参数CREATEDB接收:

选项                            描述

-D tablespace         Specifies the default tablespace for the database.    

-e                     Echo the commands that createdb generates and sends to the server.    

-E encoding    Specifies the character encoding scheme to be used in this database.    

-l locale    Specifies the locale to be used in this database.    

-T template    Specifies the template database from which to build this database.    

--help    Show help about dropdb command line arguments, and exit.    

-h host    Specifies the host name of the machine on which the server is running.    

-p port    Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections.    

-U username    User name to connect as.    

-w    Never issue a password prompt.    

-W    Force createdb to prompt for a password before connecting to a database.    

打开命令提示符,然后去是PostgreSQL安装所在的目录。进入到bin目录,执行下面的命令创建一个数据库。

createdb -h localhost -p 5432 -U postgress testdb
password ******

上面的命令会提示Postgres的默认的PostgreSQL管理用户的密码,以便提供密码和继续创建新的数据库。

一旦创建数据库时可以使用上述方法,可以检查它在列表中的数据库使用l即反斜线el命令如下:

postgres-# l
                            List of databases
  Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges  
-----------+----------+----------+---------+-------+-----------------------
postgres  | postgres | UTF8     | C       | C     |
template0 | postgres | UTF8     | C       | C     | =c/postgres          +
          |          |          |         |       | postgres=CTc/postgres
template1 | postgres | UTF8     | C       | C     | =c/postgres          +
          |          |          |         |       | postgres=CTc/postgres
testdb    | postgres | UTF8     | C       | C     |
(4 rows)

postgres-#

蒲公英随风飘舞哈
2009-07-02 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:526万
展开全部
这好像是一个BUG,在新版本中解决了。
你把多语句分开写
如,先运行
CREATE DATABASE demo
WITH OWNER = postgres
ENCODING = 'UTF8';
再运行
COMMENT ON DATABASE demo IS 'demo';
等其他语句试试看
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欣茂科技
2021-02-06 · 超过19用户采纳过TA的回答
知道答主
回答量:409
采纳率:100%
帮助的人:21.2万
展开全部

MySQL云数据库创建、配置与使用教程,五秒钟创建属于自己的mysql云数据库,申请地址:xmjar.cn

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式