当前位置: 首页 > 面试题库 >

PostgreSQL从多个表中删除多行

刘畅
2023-03-14
问题内容

考虑2个或更多表:

users (id, firstname, lastname)
orders (orderid, userid, orderdate, total)

我希望删除所有与名字“ Sam ”匹配的 用户 及其 订单 。在mysql中,我通常会做左连接。在此示例中,我们不知道userid。

查询的正确格式是什么?


问题答案:

http://www.postgresql.org/docs/current/static/sql-
delete.html

DELETE 
FROM orders o
USING users u
WHERE o.userid = u.id
  and u.firstname = 'Sam';

DELETE 
FROM users u
WHERE u.firstname = 'Sam';

您也可以使用 ON delete cascade

http://www.postgresql.org/docs/current/static/ddl-
constraints.html

CREATE TABLE order_items (
    product_no integer REFERENCES products ON DELETE RESTRICT,
    order_id integer REFERENCES orders ON DELETE CASCADE,
    quantity integer,
    PRIMARY KEY (product_no, order_id)
);


 类似资料:
  • 问题内容: 我正在尝试使用SQL从连接在一起的多个表中删除多行。 表A连接到表B表B连接到表C 我想删除表B和C中与表A中的一行相对应的所有行 问题答案: 好吧,如果您使用过InnoDB表,则可以使用外键设置级联删除,这将自动完成所有操作。但是,如果您出于某种原因使用MyISAM,则只需使用多表DELETE即可:

  • 问题内容: 这是正确的方法吗? 问题答案: 对,那是正确的。在这里工作正常: 如果对您不起作用,则可以修改此示例以显示您遇到的问题。

  • 问题内容: 这是我想做的事情: 从表中删除一个项目,并在表中删除与该项目关联的所有图像。 可以说 此查询有什么问题? 问题答案:

  • 要删除表的列,请在ALTER table语句中使用drop column子句,如下所示: 错误:“rs”行或其附近出现语法错误1:ALTER TABLE res_partner rs

  • 本文向大家介绍postgresql 实现多表关联删除,包括了postgresql 实现多表关联删除的使用技巧和注意事项,需要的朋友参考一下 t_aj_ajjbxx t_aj_ajfbxx t_xt_dwxx 两表关联,删除一张表中数据 只有t_aj_ajfbxx 表中数据被删除 三表关联,删除一张表中数据 只有t_aj_ajjbxx 表中数据被删除 补充:PostgreSQL的级联删除(主键删除则