带外键筛选器的PostgreSQL更新1列

2024-06-09 14:10:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张桌子。 第一个名为dishes,由此查询创建:

CREATE TABLE IF NOT EXISTS dishes 
(
id SERIAL PRIMARY KEY
, name TEXT
, description TEXT
, type TEXT
, image TEXT
, price INTEGER
);

dishes看起来像这样:

id      name    description     type    image    price
8       Pasta   Really good     hot     URL      30

第二个表名为dish_ingredients,如下所示:

(
id SERIAL PRIMARY KEY
, holder_id INTEGER
, ingredients TEXT
, quantity TEXT
, FOREIGN KEY(holder_id) REFERENCES dishes(id) ON DELETE CASCADE
);
id   holder_id   ingredients        quantity
1    8              meat            100g

其中holder_iddishes{}的外键。 我在dishes_ingredients{}中有多行,我正在尝试进行一个查询,该查询将只更新来自dish_ingredients的一行,但问题是我需要引用过滤器中的holder_id

到目前为止,我已经尝试过:

UPDATE dish_ingredients 
SET ingredients='test' 
FROM dishes 
WHERE dish_ingredients.holder_id=8;

但是它会用test更新来自dish_ingredients的所有行

这背后的主要思想是仅为当前产品编辑产品网页,在本例中,当前产品为dishes{}

我不知道如何继续下去,我尝试了多个查询,但我被卡住了


Tags: keytextnameimageid产品typeserial