我正在制作一个名为Employees
的表,其中first_name
和last_name
存储为(作为varchar)。我创建触发器下面检查姓和名的组合已经存在:由于'无效的触发器规范',SQL触发器无法正常工作
CREATE OR REPLACE TRIGGER VALIDATE_NAME
BEFORE INSERT ON EMPLOYEES
IF (SELECT count(*) FROM employees
WHERE firs_name = new.first_name AND LAST_NAME = new.last_name) = 0
BEGIN
END
ELSE IF (SELECT count(*) FROM employees
WHERE firs_name = new.first_name AND LAST_NAME = new.last_name) >= 1
BEGIN
RETURN FALSE;
END;
不过,我收到一条错误消息Invalid trigger specification
,我不明白。有人能澄清我做错了什么吗?我已经删除了第一个BEGIN/END
的内容,因为它只是存储了它应有的新信息。
P.S .:这是一个理论案例研究,我知道检查重复条目的正确方法是不使用名字和姓氏,因为两个人可能共享相同的名称。我知道,所以请不要着手它:-)
哪个DBMS? (你的代码不是ANSI SQL ...) – jarlh
我应该clarrified @jarlh,我使用Oracle与SQL Developer –
我也添加了标签。 –