Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггер: часть вставляет, часть - нет / 4 сообщений из 4, страница 1 из 1
03.04.2015, 14:34:21
    #38926319
AlexSSSS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер: часть вставляет, часть - нет
Дано: таблица свойств.
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE `sv` (
  `article` varchar(40) NOT NULL DEFAULT '',
  `name_sv` varchar(40) NOT NULL DEFAULT '',
  `description` varchar(40) NOT NULL DEFAULT '',
  `code` varchar(40) NOT NULL DEFAULT '',
  KEY `by_article` (`article`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


name_sv может быть трех значений.
Проблема в том, что ну очень долгие поиски по параметрам делаются :-( Аж работать невозможно.
Видится такой выход:
делаю таблицу for_find:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE ` for_find` (
  `article` varchar(40) NOT NULL DEFAULT '',
  `model` varchar(40) NOT NULL DEFAULT '',
  `proizv` varchar(40) NOT NULL DEFAULT '',
  `dop_info` varchar(40) NOT NULL DEFAULT '',
  KEY `by_article` (`article`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


и на sv (свойства) вешаю триггер (insert after)
:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
BEGIN
   if NEW.code='add1' then
      replace for_find (articul,model)VALUES(NEW.item_id,NEW.description);
   end if;
   if NEW.code='add2' then
      replace for_find (articul,proizv)VALUES(NEW.item_id,NEW.description);
   end if;   
   if NEW.code='add3' then
      replace for_find (articul,dop_info)VALUES(NEW.item_id,NEW.description);
   end if;
END


Беда следующая:
заполняются тоько поля proizv и dop_info :-(
Хотя, если оставляю в триггере только первый иф - поле model заполняется.

Что не учтено?
...
Рейтинг: 0 / 0
03.04.2015, 15:46:42
    #38926445
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер: часть вставляет, часть - нет
Долго читал... Познал дао... Но так ни хрена и не понял.
Особенно - как вообще мог триггер заполнить что-то, если упомянутого там поля в структуре тупо нет.
...
Рейтинг: 0 / 0
03.04.2015, 16:06:08
    #38926471
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер: часть вставляет, часть - нет
AlexSSSSПроблема в том, что ну очень долгие поиски по параметрам делаются :-( Аж работать невозможно.Давайте отбросим ваши изобретения и начнем отсюда.
Показывайте что и как ищете.

AlexSSSSname_sv может быть трех значений.Тогда зачем оно имеет тип varchar(40) ?
И куда делся первичный ключ у таблицы `sv` ?
...
Рейтинг: 0 / 0
08.04.2015, 13:31:16
    #38930419
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер: часть вставляет, часть - нет
miksoft,

да я даже больше скажу...что должен делать реплейс на таблице без уникальных полей?

и да... первичный ключ для иннодб надо создать- ведь один чорт он есть, только лучше чтоб его и видно было.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггер: часть вставляет, часть - нет / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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