我试图将多个值插入到postgresql中不同表中的表中,并遇到一个错误( 21000: ERROR:由用作表达式的子查询返回的多行)。
INSERT INTO coupon (id,entityid)
values
(select nextval('seq_coupon')),(select entityid from card where country in ('China')));
此查询从卡中选择实体in,其中国家(‘中国’)有多行。
任何帮助都是非常感谢的。
如何在postgresql中使用更新作为内部子查询?
update unit_has_jobcard
set status = 'approval'
where id = (update jobcard_has_approvals
set approve = true
where id = 27
returning id);
我需要在单个查询中更新两个表。addBatch帮助多个查询一次命中一个表。但我需要知道这是否可能。
我想找出该行是否属于postgresql中的索引列。
例如:当我打开table对象时,我看到我的索引和每个索引的基数。
表中的总行是1,45,454,但是所有索引的基数是1,45,300。在我创建的任何索引中,大约有150多行没有索引。
我运行了下面的查询来查找基数,
SELECT relname,
relkind,
reltuples AS cardinality,
relpages
FROM pg_class
WHERE relname LIKE '%table_name%';
谁能解释一下为什么一些行被留下来作为
在PostgreSQL 9.1中,我必须更新许多行中的许多列。我目前正在使用许多不同的UPDATE查询,每个查询都在不同的行上工作(基于主键):
UPDATE mytable SET column_a = 12, column_b = 6 WHERE id = 1;
UPDATE mytable SET column_a = 1, column_b = 45 WHERE id = 2;
UPDATE mytable SET column_a = 56, column_b = 3 WHERE id = 3;
我不得不做几千个这样的查询。
在PostgreSQL中,有没有什么办法可以在一个查询中“
我需要编写一个select查询来对MySQL表中的时间间隔进行求和,该表将时间间隔存储为文本,格式类似于以下内容
10 days 3:28:31
在PostgreSQL查询中,我们可以简单地使用::interval,它可以将上面的内容转换为间隔,我们可以在PostgreSQL查询中对其使用求和方法,但我无法在MySQL中这样做。任何帮助都将不胜感激。
如果我在Postgresql中运行这些查询,是否会有任何性能差异?假设表有很多行。
SELECT c.name
FROM products as p
JOIN category as c on p.type = c.type
WHERE c.name = 'a';
SELECT a.name
FROM (
SELECT c.name
FROM products as p
JOIN category as c on p.type = c.type
) as a
WHERE a.name = 'a';
**已编辑
使用实体框架linq,像这样
假设我们有以下SQL:
SELECT a, b, c
FROM example_table
WHERE a = '12345' AND (b, c) <= ('2020-08-15'::date, '2020-08-15 00:40:33'::timestamp)
LIMIT 20
PostgreSQL能有效地使用定义在(a,b,c)上的B树索引来回答这个查询吗?
再详细介绍一下用例。此SQL查询是我的游标分页实现的一部分。因为我使用UUID作为主键,所以我不得不使用日期/时间戳列作为游标,这更符合我的实际需要。我对PostgreSQL和这
我正在挣扎于一个查询,这个查询是随机返回多行而不是一行的。我使用的是PostgreSQL 9.4.12
查询如下:
UPDATE folder as f set locked = 'locked', date_locked = current_timestamp
from (
SELECT * from folder as f2
WHERE f2.locked = 'available'
LIMIT 1 FOR UPDATE ) as folderToUpdate
WHERE f.id = folderToUpdate.id ret
我有数亿行的数据库。我正在运行以下查询:
select * from "Payments" as p
inner join "PaymentOrders" as po
on po."Id" = p."PaymentOrderId"
inner join "Users" as u
On u."Id" = po."UserId"
INNER JOIN "Roles" as r
on u."RoleId" = r."Id"
Where r.&
我使用变量来存储多行,我想把它插入到临时表中。此查询返回多行
BEGIN
SELECT id INTO
temp_var
FROM TABLE_1 a,
TABLE_2 b
where a.id =b.id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
temp_var := NULL;
END;
我想在临时表中插入变量值?
我使用的是PostgreSQL 9.6 (Ubuntu16.04),我有一个大约10k行的小表T,其中每一行每分钟更新2次,峰值时间(类似于UPDATE T SET c1 = ?, c2 = ? WHERE id = ?)。此外,这是该表中唯一的更新操作,而且插入和删除根本不常见。
但是,我注意到T中的SELECT查询有点慢,在研究了一下之后,我发现了。此外,我还发现了类似的问题,比如和,但是关于查询。
我的问题是:行中频繁的更新是否会减缓选择查询的速度?如果是的话,怎样才是正确的处理方法呢?
我正在运行一个非常大查询,它在表中插入了很多行,将近800万行被分成了一些较小的查询,但在某些时刻出现了错误:"I get an error“not not write block ...设备上没有剩余空间的临时文件...“使用postgresql”。我不知道在每次查询后是否需要删除临时文件,以及如何删除临时文件,或者是否与其他问题相关。
谢谢
我需要对大小为100亿行的三列表t (s,p,o)运行200万次查询。每一列的数据类型为字符串。
只有两种类型的查询:
select s p o from t where s = param
select s p o from t where o = param
如果我将表存储在Postgresql数据库中,则使用Java ThreadPoolExecutor需要6个小时。
你认为Spark能更快地处理查询吗?最好的策略是什么?以下是我的想法:
将表加载到一个dataframe中,并启动对dataframe的查询。
将表加载到parquet数据库中,并对该数据库启动查询
我对SQL很陌生,我一直在使用一个查询。
我有3张桌子--雇员、部门和salary_paid。我试图通过提供以下条件来更新salary_paid表中的奖金列
give 10% bonus on total salary to the employees who are not in IT departments.
我想出了这个问题
update salary_paid
set bonus=(select (0.1*total_salary) "Bonus"
from salary_paid, departments, employees
如何在postgresql中嵌套循环?我必须在表中插入一些基于另一张表的数据。
DO $$
DECLARE productAdminsCursor CURSOR IS
SELECT *
FROM public.actor_groups
WHERE actor_groups.type = 'PRODUCT_ADMIN';
DECLARE actorsId INTEGER;
BEGIN FOR productadmin IN productAdminsCursor LOOP
actorsId := (SELECT actor_id
我正在尝试将一些旧的MySQL查询移植到PostgreSQL,但我在使用这个查询时遇到了问题:
DELETE FROM logtable ORDER BY timestamp LIMIT 10;
PostgreSQL在其delete语法中不允许排序或限制,并且表没有主键,所以我不能使用子查询。此外,我希望保留查询完全删除给定数字或记录的行为--例如,如果表包含30行,但它们都具有相同的时间戳,我仍然希望删除10行,尽管哪10行并不重要。
那么,如何在PostgreSQL中使用排序功能删除固定数量的行呢?
编辑:没有主键表示没有log_id列或类似的列。啊,遗留系统的乐趣!