218得票14回答
在Postgres数据库中截断所有表格

我经常需要在重建之前直接从我的PostgreSQL数据库中删除所有数据。如何在SQL中直接执行此操作? 目前,我已经想出了一条SQL语句,可以返回我需要执行的所有命令:SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables W...

208得票7回答
在PL/pgSQL中使用变量存储查询结果

如何在PostgreSQL的过程语言PL/pgSQL中将查询结果赋值给变量? 我有一个函数:CREATE OR REPLACE FUNCTION test(x numeric) RETURNS character varying AS $BODY$ DECLARE name chara...

166得票2回答
在PostgreSQL中如何在函数内返回SELECT语句的结果?

我在PostgreSQL中有这个函数,但是我不知道如何返回查询的结果:CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN SELECT text, ...

161得票4回答
如何创建一个返回空值的函数

我想用pl/pgsql编写一个函数。我正在使用Postgres Enterprise Manager v3,并在shell中创建函数,但是在shell中必须定义返回类型。如果我不定义返回类型,我就无法创建函数。 如何创建一个没有返回结果的函数,例如创建一个新表的函数?

149得票2回答
PL/pgSQL中的'$$'有什么用途?

作为一个完全不了解 PL/pgSQL 的人,这个函数里的双美元符号有什么意义呢?CREATE OR REPLACE FUNCTION check_phone_number(text) RETURNS boolean AS $$ BEGIN IF NOT $1 ~ e'^\\+\\d{3}...

135得票6回答
在PostgreSQL中将选择查询的输出存储在一个数组中

我的代码是:SELECT column_name FROM information.SCHEMA.columns WHERE table_name = 'aean' 它返回表格aean的列名。 现在我声明了一个数组:DECLARE colnames text[] 我该如何将选择框的输出存储在c...

130得票4回答
PostgreSQL IF语句

我该如何在Postgres中执行这样的查询?IF (select count(*) from orders) > 0 THEN DELETE from orders ELSE INSERT INTO orders values (1,2,3);

114得票6回答
Postgres FOR LOOP

我正试图从一个表格中随机获取 25 个包含 15,000 个 ID 的样本。而不是每次手动按运行按钮,我想要使用循环实现。我完全理解这不是 Postgres 的最佳使用方式,但这是我所拥有的工具。以下是我迄今为止的进展:for i in 1..25 LOOP insert into pl...

112得票8回答
作为 PostgreSQL 函数参数的表名

我���望您能在Postgres函数中将表名作为参数传递。我尝试了以下代码: CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer AS $$ BEGIN IF EXISTS (...

104得票7回答
在PostgreSQL中使用PL/pgSQL返回多个字段作为记录

我正在使用PL/pgSQL编写一个存储过程。 我想返回一个记录,其中包含来自几个不同表的字段。可能类似于这样:CREATE OR REPLACE FUNCTION get_object_fields(name text) RETURNS RECORD AS $$ BEGIN -- fe...