postgresql 数据库问题
character varying,
character varying
)
returns boolean as
$$
begin
select count(*) from "user"
where username=$1 and password=$2;
if found then
return true;
else
return false;
end if;
end;
$$
language plpgsql volatile;
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function "login" line 2 at SQL statement 展开
2015-12-07
错误代码中已经提示了使用perform来替代,说明你的select语句,就必须写到一个变量中。
$$
declare v_cmd text;
begin
v_cmd='select count(*) from "user" where username=$1 and password=$2';
PERFORM exec_shell(v_cmd);
按照这个去修改,这样就可以了,同时建立一个exec_shell()的函数。
CREATE OR REPLACE FUNCTION exec_shell(character varying)
RETURNS integer AS
$BODY$
system($_[0]);
return 1;
$BODY$
LANGUAGE plperlu VOLATILE
COST 1;
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-#