Home > Enterprise >  delete row in cascade postgresql
delete row in cascade postgresql

Time:11-15

Sorry about images, but I don't know how to make a similar example. I have db on postgresql with tables: enter image description here

Foreign keys for interest: engine_labeledimage.job_id <-> engine_job.id and engine_labeledimageattributeval.image_id <-> engine_labeledimage.id

So I want delete any row in engine_labeledimage and engine_labeledimageattributeval that connect to specific id in engine_job. Here sample my code:

delete from engine_labeledimageattributeval 
using engine_labeledimage 
where engine_labeledimage.job_id in (3981,3983,3984);

delete from engine_labeledimage
using engine_job
where engine_job.id in ( 3981,3983,3984);

Its work, but code delete any rows in tables (((((

What I do wrong (except back-up data and delete policies) ?

CodePudding user response:

Add the reference condition in first query:

delete from engine_labeledimageattributeval 
using engine_labeledimage 
where engine_labeledimageattributeval.image_id = engine_labeledimage.id
and engine_labeledimage.job_id in (3981,3983,3984);
  • Related