问题标签 [postgresql-8.4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 更新表逻辑
我有两张表,上面有触发器。
第一的
第二
我有一个问题。如果我在第一个表中插入数据,它的触发器也会在第二个表中插入数据。但是该插入会导致第二个表的触发器在第一个表上执行插入,依此类推。
你能帮我解决这个问题吗?如何让表格在不循环的情况下相互更新?
更新
我有另一个问题当我在表中插入数据时如何更改数据?例如,我在the_geom
列中插入 GEOMETRY。如果几何SRID=70066
我想把the_geom
这个函数的工作结果放在列中ST_TRANSFORM(the_geom,900913)
。
更新 2
扳机
功能
如果我使用这个函数触发没有工作,但如果这样:
我明白id=88
了,但 ST_TRANSFORM 不起作用。
更新 3
ST_TRANSFORM() 不错的功能,但在我的情况下它做了一些奇怪的事情。
例如,我有一个表 filedata_temp(SRID=4326)。我用 srid=70066 插入几何我试试这个触发器
并得到这个几何图形。
"0103000020E6100000010000001800000097832C7ABD823741DA312CBF59F6174145ED23E0088337413CB8228A65F7174145ED23E0088337413CB8228A65F7174145ED23E0088337413CB8228A65F7174115B8A7F8208337416DE8C689ADF7174115B8A7F8208337416DE8C689ADF71741D1D3BAF56383374114BFD1303AF917418B016D395F8537413C2856DFF7F717413AF95F044C853741A997BC22A3F71741F88E75BD2D85374178C92D9BE6F61741F92A3B192685374165C8D76E31F61741C84AA37B26853741F2674F6A96F5174144F25B9B16853741E849D10C1BF5174105142CD2E384374112E19E8688F31741B72C78F697843741A808260138F31741FF0C0C6A0884374151A8BBFF76F21741832CF2EEF48337418BE15C1290F21741FFFB3AC6A3833741D85A253DF4F2174113E8B8956C83374109067F2139F31741E383648E3383374100C25C64D8F3174179BAEBD7178337412DA0D6482BF41741CF38E4F7038337410AB04BD7E5F41741C936158CE182374145C1EC5D99F5174197832C7ABD823741DA312CBF59F61741"
ST_transform() 将这个字符串从 SRID=4326 和在 EPSG:70066 中转换的几何体生成。
70066中有这个字符串
"0103000020B2110100010000001800000097832C7ABD823741DA312CBF59F6174145ED23E0088337413CB8228A65F7174145ED23E0088337413CB8228A65F7174145ED23E0088337413CB8228A65F7174115B8A7F8208337416DE8C689ADF7174115B8A7F8208337416DE8C689ADF71741D1D3BAF56383374114BFD1303AF917418B016D395F8537413C2856DFF7F717413AF95F044C853741A997BC22A3F71741F88E75BD2D85374178C92D9BE6F61741F92A3B192685374165C8D76E31F61741C84AA37B26853741F2674F6A96F5174144F25B9B16853741E849D10C1BF5174105142CD2E384374112E19E8688F31741B72C78F697843741A808260138F31741FF0C0C6A0884374151A8BBFF76F21741832CF2EEF48337418BE15C1290F21741FFFB3AC6A3833741D85A253DF4F2174113E8B8956C83374109067F2139F31741E383648E3383374100C25C64D8F3174179BAEBD7178337412DA0D6482BF41741CF38E4F7038337410AB04BD7E5F41741C936158CE182374145C1EC5D99F5174197832C7ABD823741DA312CBF59F61741"
而在 4326
"0103000020E61000000100000018000000AE4F5BA2FC5B4E407E80E7E6F46C4C40F7F1BF79255C4E4019C32D62086D4C40F7F1BF79255C4E4019C32D62086D4C40F7F1BF79255C4E4019C32D62086D4C40A7CE9382325C4E40D8EA369C0D6D4C40A7CE9382325C4E40D8EA369C0D6D4C401BD2B101575C4E4064A420982A6D4C4090DF29FE665D4E4064EE5369116D4C408195B3905C5D4E403664043C0B6D4C4025A00D0E4C5D4E40F7FD7274FD6C4C404201C7B5475D4E409ADF7B26F06C4C403801C7B5475D4E40E43D0EBFE46C4C406EC339053F5D4E404085D2B7DB6C4C40BDFDA836235D4E4001EBC841BE6C4C40685B445FFA5C4E4015C4038EB86C4C40ADB5C108AD5C4E40727935C6AA6C4C408A6B4B9BA25C4E40331ECEACAC6C4C40A7368928775C4E40F7C22E47B46C4C409F640F9D595C4E4077694F81B96C4C40660C21333B5C4E4012EA7C62C56C4C406623646D2C5C4E40CE83E38FCB6C4C4042D9EDFF215C4E40C6A89957D96C4C4095D75EC00F5C4E4013FFA0A5E66C4C40AE4F5BA2FC5B4E407E80E7E6F46C4C40"
php - PostgreSQL 分层,类别树
环境:postgresql-8.4
我正在尝试构建类别树。基本上我期待最终输出,例如:
例如:表结构为
p>到目前为止,我已经得到了这个,但没有工作。任何帮助将不胜感激:
来自数据库的样本
plpgsql - postgresql 真空分析许多表
我有一个由大约 200 个子表组成的中型表(大约 150 亿行)(即每个子表继承母表,并且有约束 CHECKS 来优化分区)。
加载每个表的 plpgsql 代码也会在每个子表上生成索引,但不幸的是(因为它是一个函数),它也不能vacuum analyze subtable;
为它刚刚加载和索引的子表执行 a。
因此,vacuum analyze
在整个数据库的下一个完成之前,母表上的所有查询都很糟糕并且不使用索引(正如解释所揭示的那样)。
请注意,这是 PostgreSQL 8.2.14 的全部内容。
问题
- 有没有办法让 plpgsql 函数说,请在上面加糖,结束事务块并执行
vacuum analyze subtable
? - 有没有办法使用一些通配符()一次清理/分析许多表
vacuum analyze schema.subtables*
? - 或者,是否可以只真空/分析一个模式?
- 有没有其他方法可以从 postgresql 中以编程方式清理/分析 200 个子表(是的,我可以将所有子表的名称、折腾和季节转储到 psql 脚本中,然后执行那个,但它有点难看)。
sql - 跨年份按日期范围(同一月和同一天)过滤
我有一个 PostgreSQL 数据库,其中有一个保存日期的表。现在我需要在所有年份中找到日期范围内的所有行,15/02
直到21/06
(日/月)。
示例结果:
sql - 尝试查找不同数据时返回相同的结果
我可以从下面的查询中获取每年的日期范围数据15/02
。21/06
但问题是,当我想从 year 中查找时2010 - 2012
,我得到了相同的结果。
我想得到的范围:
谁能帮我解决这个问题!
debian - postgresql.conf 优化
我的 postgresql 服务器非常慢。特别是当我在不同的线程中同时执行多个查询时,有时会导致 postgresql 服务器在 5 到 15 秒内无响应。我想知道我是否在 postgresql.conf 中犯了错误。
我的专用服务器有 2 个内核和 4 GB 内存,以及一个标准 SATA-2 磁盘。postgres db(8.4版)中有6gb的数据,同时连接了几百个用户。我正在使用 JDBC 访问 postgress,同时运行 1 到 10 个访问数据库的线程。我的服务器是 debian lenny。Cpu 没有 100% 使用,内存也没有。
感谢您提供任何帮助。
sql - SQL:选择(空=空);
这个问题不在我正在查看的数据库考试中,所以它可能无法在真实情况下使用......
以下有效的 SQL 语句会产生什么输出?解释你的答案!
选择(空=空);
我可以很容易地产生语句的输出,即
在 psql 8.4.11 中,但是如何以及为什么这是我不知道的答案...我猜它会尝试评估括号内的表达式并得出真/假,但显然不是。
关于它为什么表现得如此的任何提示?
谢谢
postgresql - 如何调试 Postgres 复制命令失败
我使用失败的复制命令将大约 75k 记录加载到 Postgres 表中。我得到一个例外
错误:编码“UTF8”的字节序列无效:0xbd
现在我需要找到哪一行有这个条目。有没有办法做到这一点?我正在考虑启用一些可能有帮助的 postgres 日志记录或任何其他解决方案注意:我只遇到一个特定文件的问题。其他文件正在加载而没有问题
java - 如何通过 JDBC 锁定 PostgreSQL 数据库?
在我的 Java webapp 中,每个实例都在启动时检查数据库是否通过 JDBC 连接是最新的。如果数据库不是最新的,它会通过执行 SQL 脚本来执行更新例程。
我无法控制实例何时启动。因此,我需要确保只有一个实例同时执行数据库更新。理想情况下,我需要锁定整个数据库,但根据
http://www.postgresql.org/docs/8.4/static/explicit-locking.html
和
http://wiki.postgresql.org/wiki/Lock_database
PostgreSQL 不支持它(我仍在使用 8.4 版)。
我还有什么其他选择?
postgresql - Postgres 查询返回的不仅仅是 array_agg
这是数据的格式:
我已经让查询按照我想要的方式执行,问题是我需要返回更多数据。
我尝试了对我来说似乎简单但合乎逻辑的方法:
我需要返回如下所示的内容:
而不仅仅是这个:
当我尝试向查询添加其他字段时,我得到:
ERROR: column "stuff.item_serial" must appear in the GROUP BY clause or be used in an aggregate function
但是我不想GROUP BY
item_serial,我只是希望它与聚合一起返回,对吗?
我需要运行子查询吗?我相信这很简单。如果有多种方法,哪种方法最有效?我将连接的一些文本是坐标(大字符串文本)。