Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите упростить код / 10 сообщений из 10, страница 1 из 1
19.04.2014, 17:59:32
    #38619556
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
DELIMITER //

create procedure delete_reply_record( param int )
begin
declare fk  int;
declare cnt int;

/* Получаем внешний ключ */
select distinct
    id_test_fk
into fk from
    dbschool.reply
where
    reply.id_reply_pk = param;

/* Удаляем запись */
delete from dbschool.reply where reply.id_reply_pk = param;
 
/* Получаем количество оставшихся записей */
select 
    count(*)
into cnt from
    dbschool.reply
where
    reply.id_test_fk = fk;

/*Удаляем или обновляем*/
if cnt = 0 then 
    delete from dbschool.tests where tests.id_test_pk = fk;
else
    update dbschool.tests set count_reply=cnt where id_test_pk = fk;
end if;
    
end; //
...
Рейтинг: 0 / 0
19.04.2014, 20:35:14
    #38619619
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
gera3323,

а чем не нравится?
судя по названиям, быстродействие не критично, хорошая наглядночть.
если только поизвращаться, для опыта....
...
Рейтинг: 0 / 0
19.04.2014, 20:38:52
    #38619621
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
gera3323
Код: plsql
1.
2.
3.
4.
5.
6.
select distinct
    id_test_fk
into fk from
    dbschool.reply
where
    reply.id_reply_pk = param;

А если записей будет больше, чем одна?
...
Рейтинг: 0 / 0
19.04.2014, 20:50:21
    #38619625
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
miksoft,

все ок. работает нормально. тестировал долго.
нужно получить лишь одно значение.
...
Рейтинг: 0 / 0
19.04.2014, 20:55:40
    #38619626
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
gera3323miksoft,

все ок. работает нормально. тестировал долго.
нужно получить лишь одно значение.тестирование тут роли не играет, тут в логике сомнения.
...
Рейтинг: 0 / 0
19.04.2014, 21:16:53
    #38619637
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
miksoft,

мы убираем все повторные внешние ключи и у нас остается только один, он нам и нужен.
А если его не будет ничего страшного.
...
Рейтинг: 0 / 0
19.04.2014, 21:26:37
    #38619645
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
gera3323у нас остается только одинвот в этом-то и нет уверенности.
Если поле id_test_fk имеет всегда ровно одно значение для каждого конкретного поля id_reply_pk, то непонятен смысл существования сразу двух полей.
...
Рейтинг: 0 / 0
19.04.2014, 21:30:01
    #38619647
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
miksoft,

id_test_fk указывает на другую базы. id_reply_pk - текущей базы из которой будет происходить удаление.
...
Рейтинг: 0 / 0
19.04.2014, 21:32:06
    #38619648
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
gera3323,

и id_test_fk не всегда имеет одно и тоже значение.
...
Рейтинг: 0 / 0
19.04.2014, 22:14:43
    #38619662
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить код
gera3323и id_test_fk не всегда имеет одно и тоже значение.Тогда этот запрос однажды выдаст несколько записей и приведет к ошибке.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите упростить код / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]