Delete from multiple tables in sql -


hello can me here.

i delete multiple tables.

i want delete id_grupo = 6 grupos. when delete delete gerir_posts id_grupo = 6. posts, id_post = 4, that's same id gerir_posts id_post; want delete too.

so realy want when remove grup , posts in grup deleted too.

picture tables

this example of db.

   create table utilizadores (     id_utilizador int auto_increment not null primary key,     nome varchar(50) );  insert utilizadores values (1,'admin');  create table grupos (     id_grupo int auto_increment not null primary key,     nome_grupo varchar(50) ); insert grupos values (1,'grupo');  create table gerir_grupos (     id_gerir_grupo int auto_increment not null primary key,     id_grupo int,     id_utilizador int,     foreign key (id_utilizador) references utilizadores(id_utilizador),     foreign key (id_grupo) references grupos(id_grupo) on delete cascade );  insert gerir_grupos values (1,1,1);  create table posts (     id_post int auto_increment not null primary key,     id_utilizador int,     titulo_do_post varchar(50),     corpo_do_post varchar(500),     foreign key (id_utilizador) references utilizadores (id_utilizador)  ); insert posts values (1,1,"teste","grupo teste");  create table gerir_posts (     id_gerir_post int auto_increment not null primary key,     id_post int,     id_grupo int,     foreign key (id_post) references posts (id_post) on delete cascade,     foreign key (id_grupo) references grupos (id_grupo)on delete cascade );  insert gerir_posts values (1,1,1); 

if can help

picture tables

you cannot specify many tables in single delete statement.

use transaction

begin; delete posts post_id in (select post_id gerir_posts ...); delete gerir_posts ... ;     delete grupos ... ; commit; 

this way, either deleted together, or stays intact.

use on delete cascade in constraints

create table posts (   post_id integer primary key,   ... );  create table gerir_posts (   ...   post_id integer;   constraint gerir_posts_fk      foreign key(post_id) references(posts.post_id)     on delete cascade, ); 

now if delete record posts, records in gerir_posts refer same post_id deleted.

you can use alter table add / modify constraints of existing tables.


Comments

Popular posts from this blog

ios - Pass NSDictionary from Javascript to Objective-c in JavascriptCore -

python - PyInstaller UAC not working in onefile mode -

php - Need to store a large amount of data in session with CI 3 but on storing large data in session it is itself destorying automatically -