MySQL триггер изменить основной идентификатор перед вставкой - PullRequest
0 голосов
/ 29 декабря 2018

Моя цель - не допустить, чтобы два столбца были одинаковыми целыми числами.

id, relative
1,4
2,4
3,4
4,4 (NO!)
5,4

Я хотел бы создать триггер, чтобы пропустить одно значение идентификатора (первичного ключа), если относительное значение равно идентификатору перед вставкой.Желаемый результат:

id, relative
1,4
2,4
3,4
5,4 
6,4

Вот часть триггера, которую я пытаюсь заставить работать:

if new.relative=new.id then set new.id=new.id+1;
end if;

Но он ничего не делает.Как я могу сделать эту работу?

1 Ответ

0 голосов
/ 29 декабря 2018

Я не уверен, как вы реализовали триггер, но это синтаксис

Код

CREATE OR REPLACE TRIGGER same_value 
BEFORE DELETE OR INSERT OR UPDATE ON table_name 
FOR EACH ROW 
WHEN (table_name.id = table_name.relative) 
BEGIN 
#whatever you want to implement 
END; 

Ресурсы

https://www.tutorialspoint.com/plsql/plsql_triggers.htm

...