欢迎来到代码驿站!

PostgreSQL

当前位置:首页 > 数据库 > PostgreSQL

PostgresSql 多表关联删除语句的操作

时间:2021-10-27 09:15:57|栏目:PostgreSQL|点击:

最近用PostgresSql数据库进行多表关联删除的操作,在写sql语句的时候遇到了问题:

DELETE s.* FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1
DELETE FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1

上面两种写法操作后提示报错,下面是PostgresSql数据库对多表关联操作的正确用法,多张表之间用USING连接:

DELETE FROM student s USING classroom c WHERE s.cid = c.id AND s.sid = 1

补充:PostgresSQL中的限制和级联删除

删除和更新时对应的操作是一样的

1 Restrict 禁止删除被引用的行 (不能将约束检查推迟到事物的晚些时候)

2 No Action 如果存在任何引用行,则抛出错误,如果不声明任何行为则No Action就是缺省行为 (允许约束检查推迟到事物的晚些时候)

3 Cascade 在删除一个被引用的行时,引用他的行被自动删除

4 Set Null (外键上才有) 删除被引用行时,引用他的字段设置为NULL

5 Set Default (外键上才有) 删除被引用行时,引用他的字段被设置为缺省值

注意:一个动作声明为Set Default 但是缺省值并不能满足外键,那么动作就会失败

上一篇:查看postgresql数据库用户系统权限、对象权限的方法

栏    目:PostgreSQL

下一篇:Postgresql 动态统计某一列的某一值出现的次数实例

本文标题:PostgresSql 多表关联删除语句的操作

本文地址:http://www.codeinn.net/misctech/181450.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有