Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Тригеры (sergej) 06/01/2008 - 15:45:24
      Re: Тригеры (vi.k) 09/01/2008 - 06:24:39
      Re: Тригеры (sergej) 10/01/2008 - 12:15:21
      Re: Тригеры (vi.k) 11/01/2008 - 04:55:59
      Re: Тригеры (sergej) 11/01/2008 - 12:22:12
      Re: Тригеры (vi.k) 15/01/2008 - 02:54:20
      Re: Тригеры (vi.k) 15/01/2008 - 03:18:51
      Re: Тригеры (vi.k) 15/01/2008 - 04:04:14

> Original message text:
> From: sergej - 06/01/2008 - 15:45:24
> Subject:Тригеры
> -----------------
> Как переделать эти тригеры на mysql
> CREATE TABLE SERVICE (
> ID INTEGER NOT NULL,
> PARENT INTEGER NOT NULL,
> NAME VARCHAR(30) CHARACTER SET WIN1251 COLLATE WIN1251,
> CCOUNT INTEGER DEFAULT 0);
>
>
> ALTER TABLE SERVICE ADD CONSTRAINT PK_OBJECTS PRIMARY KEY (ID);
>
>
> SET TERM ^ ;
>
> CREATE TRIGGER TBD_SERVICE FOR SERVICE
> ACTIVE BEFORE DELETE
> POSITION 0
> AS
> BEGIN
> UPDATE SERVICE O
> SET O.CCOUNT = O.CCOUNT - 1
> WHERE O.ID = old.PARENT;
> END^
>
> CREATE TRIGGER TBI_SERVICE FOR SERVICE
> ACTIVE BEFORE INSERT
> POSITION 0
> AS
> BEGIN
> UPDATE SERVICE O
> SET O.CCOUNT = O.CCOUNT + 1
> WHERE ID = new.PARENT;
> END^
>
> CREATE TRIGGER TBU_SERVICE FOR SERVICE
> ACTIVE BEFORE UPDATE
> POSITION 0
> AS
> BEGIN
> if (old.PARENT <> new.PARENT) then
> begin
> UPDATE SERVICE O SET O.CCOUNT = O.CCOUNT - 1
> WHERE O.ID = old.PARENT;
> UPDATE SERVICE O SET O.CCOUNT = O.CCOUNT + 1
> WHERE O.ID = new.PARENT;
> end
> END^
> SET TERM ; ^
>


From: vi.k - 15/01/2008 - 03:18:51
Subject:Тригеры
-----------------
Таблица блокируется. Пока не разобрался, можно ли что сделать.

Зато всё прекрасно работает с двумя таблицами. Создать две одинаковых таблицы. Триггер на первую. В нём вставка копии строки во вторую и обновление parent'а:

INSERT INTO service2 SET id=NEW.id, parent=NEW.parent, ccount=NEW.ccount, ... ;
UPDATE service2 SET ccount=ccount+1 WHERE id = NEW.parent;

Данные считывать со второй.

Бред, конечно. Но хоть что-то :)



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
32773



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |