Questions tagged «dblink»

6
PostgreSQL:INSERT INTO…(SELECT *…)
我不确定它的标准SQL: INSERT INTO tblA (SELECT id, time FROM tblB WHERE time > 1000) 我要寻找的是:如果tblA和tblB在不同的DB Server中会怎样? PostgreSql是否提供任何实用程序或任何功能来帮助使用 INSERT query with PGresult struct 我的意思是SELECT id, time FROM tblB ...将返回PGresult*使用PQexec。是否可以在另一个结构中使用此结构PQexec来执行INSERT命令。 编辑: 如果不可能的话,那么我将从PQresult *中提取值,并创建多个INSERT语句语法,例如: INSERT INTO films (code, title, did, date_prod, kind) VALUES ('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'), ('HG120', 'The Dinner Game', 140, DEFAULT, …
124 sql  postgresql  insert  dblink 

9
如何在PostgreSQL中进行大型非阻塞更新?
我想在PostgreSQL的一个表上做一个大的更新,但是我不需要在整个操作中维护事务的完整性,因为我知道我要更改的列在执行期间不会被写入或读取。更新。我想知道psql控制台中是否有一种简便的方法可以使这些类型的操作更快。 例如,假设我有一个名为“ orders”的表,其中有3500万行,我想这样做: UPDATE orders SET status = null; 为了避免转移到主题之外的讨论,我们假定当前3500万列的所有status值都设置为相同(非null)值,从而使索引无用。 该语句的问题在于生效需要很长时间(仅是由于锁定),并且所有更改的行都被锁定,直到完成整个更新为止。此更新可能需要5个小时,而类似 UPDATE orders SET status = null WHERE (order_id > 0 and order_id < 1000000); 可能需要1分钟。超过3500万行,执行上述操作并将其分成35个块,仅需35分钟,可为我节省4小时25分钟。 我可以使用脚本进一步分解(在此处使用伪代码): for (i = 0 to 3500) { db_operation ("UPDATE orders SET status = null WHERE (order_id >" + (i*1000)" + " AND order_id …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.