каскадное удаление

Alexander08

как?
не прописывая в форен-кеях

kruzer25

Ну разве что ручками.

Alexander08

фсмысле - рекурсивно из всех зависящих таблиц?
вот этого я и хотел избежать...

pitrik2

ну ты же можешь в DELETE указать сразу все таблицы
DELETE FROM my_table_1 a, my_table_2 b WHERE a.b_id = b.id

kruzer25

Ага, и если таких a не окажется, то b тоже не удалится.
Круто будет, не сможешь из базы удалять пустые альбомы

pitrik2

ну блин
замени равенство на нужный JOIN
DELETE FROM my_table_1 a LEFT JOIN my_table_2 b ON a.b_id = b.id

kruzer25

Ну ты прямо на каком-то непонятном мне языке говоришь.
Кроме того, в любом случае - если автор треда потом введёт foreign keys, то огребёт немало геморроя с переписыванием:

If you use a multiple-table DELETE statement involving InnoDB tables for which there are foreign key constraints, the MySQL optimizer might process tables in an order that differs from that of their parent/child relationship. In this case, the statement fails and rolls back. Instead, you should delete from a single table and rely on the ON DELETE capabilities that InnoDB provides to cause the other tables to be modified accordingly.

kruzer25

Ты тут не сказал, чтоименно удалять

pitrik2

Ты тут не сказал, чтоименно удалять
ты придираешься как КОНТРА
мысль же моя понятна была

kruzer25

мысль же моя понятна была
Мне - не понятна.
Что именно ты удалить пытаешься? t1? Или t1 и t2?

pitrik2

Мне - не понятна.
Что именно ты удалить пытаешься? t1? Или t1 и t2?
зависит от того что автору треда надо
если оба надо удалить, то:
DELETE a,b FROM my_table_1 a LEFT JOIN my_table_2 b ON a.b_id = b.id

kruzer25

Уверен, что это сработает?
У меня такое подозрение, что пустые альбомы всё-таки не удалятся.
Да, опять же - если потом переходить на fk, будут сильные проблемы.

kruzer25

Да, насколько я понимаю, тут наоборот должно быть:
DELETE a,b FROM my_table_1 a LEFT JOIN my_table_2 b ON b.a_id = a.id WHERE a.id = ?

pitrik2

Да, насколько я понимаю, тут наоборот должно быть
мдяяя
ты точно КОНТРА
Оставить комментарий
Имя или ник:
Комментарий: