postgresql-9.1相关内容
早上好,集体智慧. 我最近不得不通过将原始数据目录文件插入全新安装中来恢复postgresql-9.1数据库.除了无法打开PostGIS空间数据外,我所有的数据都是完整的. 我能够通过以下方式在新数据库上启用空间数据: CREATE extension postgis; 但是,尝试访问恢复的空间数据库中的数据会导致错误. 例如, SELECT PostGIS_fu
..
销售数据包含可以包含任何字符的动态产品名称. 动态数据透视表是根据以下示例创建的 具有大量或未定义类别数的交叉表 translate()用于删除不良字符. 结果,数据透视表的列名称已损坏:缺少的字符和空格被删除. 如何返回与源数据中的列名称相同的数据? 我尝试使用 quote_ident(productname) as tootjakood, 代替 'C
..
例如,我有一个存储过程,用于从csv文件导入数据并将读取的数据写入SQL表. 我有一个定义如下的表: CREATE TABLE person (id int, name text, age int, married boolean); 首先,我检查记录是否已经存在,如果存在,我会更新,如果不存在,请插入. 每个记录字段可能具有不同的类型,因此SQL命令的结果将分配给一个标量变量列表:
..
multirow子选择将在where子句中的in运算符的右侧使用: create table t (a integer); insert into t (a) values (1), (9); drop function if exists f(); create function f() returns void as $$ begin execute ' select a
..
如何在PostgreSQL数据库中存储XML解释计划(或任何其他格式)? 测试数据:explain (verbose, format xml) select 1 用于存储结果的表:create table tmp.explain_plan_data (expp xml); 我的天真测试失败: insert into tmp.explain_plan_data values
..
我需要按真实的OR子句的数量对PostgreSQL查询的结果进行排序/排序.例如,给定类似 的查询 SELECT * FROM mytable WHERE cond1 OR cond2 OR cond3 ORDER BY rank DESC 应根据满足条件的数量对结果进行排名.还非常欢迎使用视图/存储过程解决此问题的方法! 解决方案 重复条件并添加它们: SELECT * F
..
我在postgres UDF中生成了一个查询字符串,我想将其结果放在临时表中以执行连接(我正在使用LIMIT和OFFSET,但我不想与其他ttable联接在一起最终只会在最后切断数据(例如,查询计划中的LIMIT运算符).我尝试使用以下语句创建临时表. CREATE LOCAL TEMP TABLE query_result ON COMMIT DROP AS EXECUTE query_s
..
这是我的函数声明和正文的一部分: CREATE OR REPLACE FUNCTION access_update() RETURNS void AS $$ DECLARE team_ids bigint[]; BEGIN SELECT INTO team_ids "team_id" FROM "tmp_team_list"; UPDATE "team_prsnl"
..
如何在plpgsql的IF条件下运行SQL语句?我不想创建或替换函数.这是我尝试过的: DO LANGUAGE plpgsql $$ BEGIN IF 'Khosla' = 'Khosla' THEN SELECT * FROM test_log limit 10; ELSE RAISE NOTICE 'not worked'; END IF; END; $$; ERROR: query
..
CREATE OR REPLACE FUNCTION drop_now() RETURNS void AS $BODY$ DECLARE row record; BEGIN RAISE INFO 'in'; FOR row IN select relname from pg_stat_user_tables WHERE sche
..
我有一个prefs表,这是相关的列: mydb=> SELECT pref_id, pref_name, pref_value FROM prefs; pref_id | pref_name | pref_value ---------+--------------+---------------- 1 | PagerNumber | 2125551234
..
这是一个触发器,可以通过在表上进行插入,更新或删除来调用.保证调用表的所有列都受影响,并且删除表也存在. CREATE OR REPLACE FUNCTION sample_trigger_func() RETURNS TRIGGER AS $$ DECLARE operation_code char; table_name varchar(50); delete_t
..
我使用此代码来验证DELETE句子,但我确定您知道更好的方法: CREATE OR REPLACE FUNCTION my_schema.sp_delete_row_table(table_name character varying , id_column character va
..
基本上,我无法理解plpgsql的语法,并且希望在以下工作中有所帮助. 我有一个包含1000的wgs84点的表.以下SQL将在此表的边界框中检索一组点: SELECT id, ST_X(wgs_geom), ST_Y(wgs_geom), ST_Z(wgs_geom) FROM points_table INNER JOIN (SELECT ST_Transform(ST
..
我有很多记录,我的简单查询会返回这些记录,但是当我使用函数时,它只会给我第一条记录, 首先,我使用创建自己的数据类型, CREATE TYPE my_type (usr_id integer , name varchar(30)); 我的功能是 CREATE OR REPLACE function test() returns my_type as $$ declar
..
从plpgsql函数中是否可以获取该函数的名称?甚至函数的OID? 我知道在plpgsql中有一些“特殊"变量(例如FOUND),但是似乎没有任何办法可以做到这一点. (尽管,我已经阅读了用C语言编写的函数似乎有可能的地方).并不是很关键,但这会使我做的事情变得更好/更不脆弱. 我正在使用PostgreSQL 9.1.5版 解决方案 对于触发器,请使用您还具有current_q
..
我有两个桌子 batch (batch_id,start_date,end_date,batch_strength,is_locked) sem (user_id,is_active,no_of_days) 我已经执行了下面给出的触发过程,然后使用查询更新了表 CREATE OR REPLACE FUNCTION em_batch_update() RETURNS trig
..
我想使用SELECT INTO在我的其中一个函数中创建一个临时表. SELECT INTO在SQL中有效,但在PL/pgSQL中无效. 此语句创建一个名为mytable的表(如果orig_table作为关系存在): SELECT * INTO TEMP TABLE mytable FROM orig_table; 但是将此函数放到PostgreSQL中,会出现错误:ERROR: "
..
我无法在PostgreSQL文档中找到任何内容来说明如何在同时声明元组结构的同时声明记录或行.如果未定义元组结构,则会出现错误“尚未分配的记录的元组结构不确定". 这就是我现在正在做的事情,效果很好,但是必须有更好的方法来实现. CREATE OR REPLACE FUNCTION my_func() RETURNS TABLE ( "a" integer, "b"
..
我想将下面的SQL代码从MS SQL Server移植到PostgreSQL. DECLARE @iStartYear integer DECLARE @iStartMonth integer DECLARE @iEndYear integer DECLARE @iEndMonth integer SET @iStartYear = 2012 SET @iStartMonth = 4
..