背景描述:

最近在做一个新的项目,其中的order模块,有一个order_records表和order_logs表,order_records表中的id是order_logs表的外键。

我们有一个功能是删除order_records表中的数据,并删除关联的order_logs表中的数据。

问题描述:

然而我们再测试环境测得是正常的,在生产上就不行啦。

问题分析:

代码都是一样的,为啥生产就是不行呢。

查找日志发现如下报错

Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table "ship_order_records" violates foreign key constraint "fkan0vr5n6v19406g89a5novrp7" on table "ship_order_logs"Detail: Key (id)=(81eae229-8271-4080-b471-d64ea3bda4a5) is still referenced from table "ship_order_logs".

我们的数据库用的是postgreSQL。

恍然大悟,一定是删除record表数据,但是logs表有record表外键的原因。于是去数据库确认,发现,果然测试环境的数据库中配了级联删除,而生产的数据库没有配置。

只需要将外键的 On Delete 改成 CASCADE就OK啦。

postgreSQL的外键级联删除相关推荐

  1. oracle中删除级联方法,Oracle 外键级联删除

    Oracle 外键级联删除 日期:2010年5月22日 作者: 近来软件系统中要删除一条记载,就要关联到同时删除好多张表,它们之间还存在着约束联络.所以思索到在树立表时加上约束联络,细致内容如下: S ...

  2. mysql级联删除外键约束_mysql增加外键级联删除示例

    增加外键级联删除: ALTER TABLE `extends` ADD CONSTRAINT `extends_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES ` ...

  3. oracle+cascade=gt;true,mysql数据库主外键级联删除脚本RESTRICT -- CASCADE

    在项目中,我们一般在数据库设计的时候做主外键关联设计,要么就不做.但是这样不符合规范,呵呵. 建立主外键关系的时候,默认是不能级联删除的.而出现往往在删除主表的数据时报错, 需要先删除从表然后再删除主 ...

  4. oracle 外键 更新,Oracle外键级联删除与更新

    2012年Oracle:Oracle外键级联删除与更新 比来软件系统中要删除一标识表记标帜录,就要联系关系到同时删除良多若干好多张表,它们之间还存在着约束关系.所以考虑到在建树表时加上约束关系,具体内 ...

  5. mysql级联删除外键约束_mysql通过外键级联删除

    mysql 可通过外键约束,实现数据的级联更新或者删除. 例如有主表(员工排班表): CREATE TABLE `personal_schedule` ( `id` int(11) NOT NULL  ...

  6. oracle 通过数据库主键外键级联删除

    通过PLSQLDEV设置 1,创建一个有主键的表 2,创建一个丛表,通过PL/SQDEV设置带有级联删除的外键 编辑外键表-->键-->填写键名称-->选择Foreign--> ...

  7. EFCore的外键级联删除导致的【可能会导致循环或多重级联路径】

    之前也是经常遇到这个问题,但好在每次创建的实体不多,很容易就能找到是哪个外键导致级联循环删除问题 之前都是这么处理,因为创建的实体也不多,所以还处理得来 但最近跟别人合作写后端,别人写了好多实体,我一 ...

  8. oracle数据库建立外键级联删除

    在给已存在的oracle数据表建立外键时命令为: alter table tablename add constraint FK_NAME foreign key(tablefile) referen ...

  9. mysql怎么写外键支持级联删除_MySQL外键级联删除不起作用,完全难倒

    我已经阅读了很多其他线程,但我仍然感到难过.我创建了两个非常简单的表作为完整性检查,并且无法让它们执行级联删除,因此需要一些帮助. CREATE TABLE `test1` ( `test1_ID` ...

最新文章

  1. C++开源代码项目汇总
  2. Shell - 挂载硬盘
  3. 08 - JavaSE之IO流
  4. C++确定对象被使用前已先被初始化
  5. 自动装配有哪些局限性?
  6. vue学习笔记-02-前端的发展历史浅谈mmvm设计理念
  7. 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南
  8. 2019吉林大学计算机学硕考研,计算机科学与技术学院2019年硕士研究生复试基本要求...
  9. mysql使用结巴语句_MySQL 结巴中文分词插件 SqlJieba
  10. 练T25- focus必看!所有成功截图汇总
  11. 万豪酒店品牌持续拓展中国东南区,温州首家万豪酒店开业
  12. 如何在一夜之间获得成功:我「从无到有」的 5 年 [英文版]
  13. 简单的记账方法有哪些?
  14. python随机生成英文字符串_如何用Python语言生成随机字符串 | 学步园
  15. HDU 1984 ZOJ 2987 Misspelling(模拟)
  16. SSH登陆,用XShell
  17. navicat连接数据库,闲置一段时间后,再次操作,反应非常缓慢
  18. 解决800A0046没有权限问题
  19. cs1.6服务器修改游戏类型,《cs1.6》3266版本服务器
  20. (分享)2017云栖大会知识图谱专场

热门文章

  1. 力扣 347. 前 K 个高频元素
  2. linux服务器查看硬盘大小,Linux 服务器硬盘使用情况查看
  3. 【Python基础】字典dict和集合set
  4. Matlab+Robotic toolbox (各版本免费获取,及安装步骤)
  5. 洛谷B2144 阿克曼(Ackmann)函数
  6. View 点击事件的分发机制
  7. C300--HGU ONU 配置思路指导_方式1
  8. 重启计算机连线的标志是,win10右下角总出现一个小地球图标怎么办_win10电脑网络连接图标变成地球如何解决...
  9. MOOC TensorFlow入门实操课程代码回顾总结(三)
  10. Python 求10000以内的完全数