• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
追上前面的 显示全部楼层 发表于 2021-10-26 13:15:48 |阅读模式 打印 上一主题 下一主题
最近用PostgresSql数据库进行多表关联删除的使用,在写sql语句的时候遇到了问题:
  1. DELETE s.* FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1
  2. DELETE FROM student s,classroom c WHERE s.cid = c.id AND s.sid = 1
复制代码
上面两种写法使用后提示报错,下面是PostgresSql数据库对多表关联使用的准确用法,多张表之间用USING毗连:
  1. DELETE FROM student s USING classroom c WHERE s.cid = c.id AND s.sid = 1
复制代码
增补:PostgresSQL中的限定和级联删除
删除和更新时对应的使用是一样的

1
  1. Restrict
复制代码
禁止删除被引用的行 (不能将约束查抄推迟到事物的晚些时候)
2
  1. No Action
复制代码
假如存在任何引用行,则抛堕落误,假如不声明任何举动则No Action就是缺省举动 (答应约束查抄推迟到事物的晚些时候)
3
  1. Cascade
复制代码
在删除一个被引用的行时,引用他的行被主动删除
4
  1. Set Null
复制代码
(外键上才有) 删除被引用行时,引用他的字段设置为NULL
5
  1. Set Default
复制代码
(外键上才有) 删除被引用行时,引用他的字段被设置为缺省值
注意:一个动作声明为Set Default 但是缺省值并不能满足外键,那么动作就会失败
以上为个人履历,渴望能给各人一个参考,也渴望各人多多支持草根技术分享。如有错误或未思量完全的地方,望不吝赐教。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作