Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггер / 3 сообщений из 3, страница 1 из 1
01.12.2015, 09:42:28
    #39116984
selfstudy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
Доброго времени суток.
Пожалуйста помогите новичку разобраться с задачей. Нужно написать триггер чтобы он исправлял значение рекорда при появлении нового.
Если значение которое вставляем выше чем в таблице то только в этом случае он должен исправить.


Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE Record
(
ID int  NOT NULL,
Value int NOT NULL,

);            
INSERT Record (ID, Value) VALUES (1,100)


моя попытка выдаёт ошибку да и вообще она неправильна так как не исправляет существующее значение,а добавляет.
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TRIGGER wrd ON Record 
AFTER INSERT AS
BEGIN 
IF ((SELECT distinct  Value FROM inserted) < (Select distinct  Value From Record)) 
ROLLBACK
END
...
Рейтинг: 0 / 0
01.12.2015, 10:05:33
    #39117008
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
1) Для решения поставленной задачи триггер нахрен не нужен, достаточно вульгарного INSERT ... ON DUPLICATER KEY UPDATE ...
2) Твои подзапросы, несмотря на distinct, возвращают наборы записей, причём из двух полей. Как ты их хочешь сравнивать - загадка.
3) Что делает в триггере ROLLBACK, если транзакцией тут и не пахнет - ещё одна загадка.
...
Рейтинг: 0 / 0
01.12.2015, 11:08:21
    #39117091
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
4)сервер понимает только свой синтаксис, а не чьи-то придумки. Это я про "inserted".
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггер / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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