Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Процедура на добавление разного количества записей / 5 сообщений из 5, страница 1 из 1
30.05.2014, 01:33:27
    #38656541
Afelion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура на добавление разного количества записей
Добрый день.

Найти нужные примеры в интернете не смог. Поэтому прошу помочь написать процедуру (или сориентировать куда копать), которая:
1) Просматривает каждую строку атрибута "Количество л. р." в таблице "Предметы".
2) Получает число из поля "Количество л. р." таблицы "Предметы".
3) Если "Количество л. р." не равно 0, то создаёт в таблице "Отчёт" то количество строк, которое равно числу из поля "Количество л. р."

Таблицы друг с другом не связаны. Т.е. должно получиться что-то вроде рисунка в приложении к сообщению.

На данный момент я написал такой код, но он не работает.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DELIMITER //

CREATE PROCEDURE AutoInsertReport ()
BEGIN
  DECLARE CountLabwork INT;
  DECLARE NameLabwork VARCHAR(100);
  SELECT @CountLabwork := Count_labwork, @NameLabwork := Subject_name FROM Tbl_Subject;
  
  IF @CountLabwork > 0
  BEGIN
    WHILE @CountLabwork <> 0 DO
        INSERT INTO Tbl_Report (Type_report, Number_report)
        VALUES ('Л. р.' + @NameLabwork, @CountLabwork)
        @CountLabwork = @CountLabwork - 1;
    END WHILE;
  END;
END;

//



P. S. Процедура будет вызываться триггером "AFTER INSERT".
...
Рейтинг: 0 / 0
30.05.2014, 13:44:56
    #38657000
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура на добавление разного количества записей
AfelionДобрый день.

Найти нужные примеры в интернете не смог. Поэтому прошу помочь написать процедуру (или сориентировать куда копать), которая:
1) Просматривает каждую строку атрибута "Количество л. р." в таблице "Предметы".
2) Получает число из поля "Количество л. р." таблицы "Предметы".
3) Если "Количество л. р." не равно 0, то создаёт в таблице "Отчёт" то количество строк, которое равно числу из поля "Количество л. р."

Таблицы друг с другом не связаны. Т.е. должно получиться что-то вроде рисунка в приложении к сообщению.

На данный момент я написал такой код, но он не работает.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DELIMITER //

CREATE PROCEDURE AutoInsertReport ()
BEGIN
  DECLARE CountLabwork INT;
  DECLARE NameLabwork VARCHAR(100);
  SELECT @CountLabwork := Count_labwork, @NameLabwork := Subject_name FROM Tbl_Subject;
  
  IF @CountLabwork > 0
  BEGIN
    WHILE @CountLabwork <> 0 DO
        INSERT INTO Tbl_Report (Type_report, Number_report)
        VALUES ('Л. р.' + @NameLabwork, @CountLabwork)
        @CountLabwork = @CountLabwork - 1;
    END WHILE;
  END;
END;

//



P. S. Процедура будет вызываться триггером "AFTER INSERT".


1 - забудь то что ты написал

2)- я не совсем понял, почему нам надо смотреть что л.р =5 и потом создавать пять строчек...а даные для пяти строк откуда взять?? вообщем не доконца ясно, но

КУДА копать

0) обход записей курсор DECLARE CURSOR

00)открыть курсор OPEN CURSORE

000) понять сколько там записей нашло вообще FOUND_ROWS()

1) Просматривает каждую строку атрибута "Количество л. р." в таблице "Предметы".
FETCH изсвлекаем по одной записи

2) Получает число из поля "Количество л. р." таблицы "Предметы".
дык уже на шаге один получили

3) Если "Количество л. р." не равно 0, то создаёт в таблице "Отчёт" то количество строк, которое равно числу из поля "Количество л. р."
IF THEN ENDIF и делаешь что хочешь.
...
Рейтинг: 0 / 0
30.05.2014, 16:27:02
    #38657267
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура на добавление разного количества записей
alex564657498765453, вы излишне агресивны, если

>> я не совсем понял....

то не надо советовать

>> забудь то что ты написал

Человек спрашивает про одну вставку в таблицу "заявки на лекцию"
и триггером вставить несколько пустых "лекций" в другую таблицу.
Курсор там нафик не нужен.


Afelion , вы на правильном пути, просто разберитесь
как в тригерах используются вставляемые значения.
Для этого приведите ошибку или как вы там определяете
что что-то не работает.
...
Рейтинг: 0 / 0
30.05.2014, 18:01:26
    #38657376
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура на добавление разного количества записей
javajdbc,

:) Не заметил что он приписал. что код будет использовать в тригерах, а просматривать каждую строчку я воспринял как просмотр построчно выборки.

Тогда посоветуй, маестро, автору - что из тригеров хранимки нельзя вызывать.
...
Рейтинг: 0 / 0
30.05.2014, 18:42:17
    #38657412
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура на добавление разного количества записей
не агресивно, но я б тоже посовветовал забыть, то что написано....
я б посоветовал более правильно поставить тс задачу для себя.
а не здавать тут вопрос с середины проблемы.
если тс хочет использовать хранимки, то правильнее сделать хранимку на операцию инсерта.
грамотно её написать и никакого желания ещё и триггер делать не возникло б.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Процедура на добавление разного количества записей / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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