проблем в заявка за изтриване

Следната заявка не работи. Моля, кажете ми какво не е наред тук. Дава отчет за грешка: SQL грешка: ORA-00933: SQL командата не е приключила правилно 00933. 00000 - „SQL командата не е приключила правилно“. Опитвам се да изтрия данните от две таблици наведнъж.

delete t1,t2 from x t1 inner join y t2 on t1.id=t2.id where t1.id in 
(SELECT object_id FROM z WHERE name = 'YourName');

person harqs    schedule 14.06.2012    source източник
comment
Грешката е от Oracle, но етикетът казва MySql ...   -  person Nikola Markovinović    schedule 14.06.2012
comment
да, редактирах етикета   -  person harqs    schedule 14.06.2012


Отговори (3)


Изтриване на данни от две таблици наведнъж в една заявка??? Невъзможно.

person Saurabh R S    schedule 14.06.2012
comment
искам да изтрия наведнъж от 3 таблици как да направя това? използвам oracle sql и mybatis, искам да изтрия от x_table и y_table, където id=изберете id от z_table, където obj_id=1234 също в същото време искам да изтрия от user_table id = изберете id от z_table, където obj_id=1234 и user_id!= в (изберете потребителски идентификатор от main_table) накратко искам да изтрия редовете от 3 таблици x_table, y_table и user_table за дадената - person harqs; 14.06.2012
comment
как да напиша съхранената процедура за това. Имам отделна публикация за това, моля, отговорете stackoverflow.com/ въпроси/11033101/ - person harqs; 14.06.2012
comment
Моля, прочетете всеки урок и научете как да пишете процедури. Това ще ви помогне в дългосрочен план. Както и да е, отговорих на въпроса ви (отделна публикация). Погледни. - person Saurabh R S; 14.06.2012

Предполагам, че просто не можете да изтриете данни от две таблици едновременно. Ще трябва да използвате 2 заявки. Използването на транзакции може да помогне за последователността на вашия модел.

person Olivier Coilland    schedule 14.06.2012
comment
не можем да се присъединим и да изпълняваме както по-горе? - person harqs; 14.06.2012
comment
Не, не можете :) Ще трябва да използвате толкова заявки, колкото и таблици, но това не е проблем! Напълно нормално е, не се страхувайте от влияние върху производителността! Просто ги вградете в транзакция, за да сте сигурни в последователността на базата данни. - person Olivier Coilland; 14.06.2012

Ако t1 и t2 са вътрешно свързани, тогава вашата опция е да направите препратката ON DELETE CASCADE, така че трябва да изтриете само родителския ред, за да изтриете автоматично всички деца.

rgds.

person Sebas    schedule 14.06.2012