问题描述
我想在FRIENDS表上创建一个触发器,以便对朋友对进行排序,并且不会有与相同朋友重复的条目。以下触发器在BEGIN IF (:new.USER1_ID > :new.USER2_ID) ...
处引发语法错误-应该如何设置该触发器的格式?
CREATE TABLE USERS (
USER_ID INTEGER NOT NULL,FIRST_NAME VARCHAR(100) NOT NULL,LAST_NAME VARCHAR(100) NOT NULL,YEAR_OF_BIRTH INTEGER,MONTH_OF_BIRTH INTEGER,DAY_OF_BIRTH INTEGER,SSN INTEGER,EMAIL VARCHAR(100),PHONE INTEGER,PWD VARCHAR(100),ADDRESS VARCHAR(500),PRIMARY KEY(USER_ID)
);
CREATE TABLE FRIENDS (
USER1_ID INTEGER,USER2_ID INTEGER,FOREIGN KEY (USER1_ID) REFERENCES USERS(USER_ID) ON DELETE CASCADE,FOREIGN KEY (USER2_ID) REFERENCES USERS(USER_ID) ON DELETE CASCADE,PRIMARY KEY(USER1_ID,USER2_ID),CHECK(USER1_ID!=USER2_ID)
);
CREATE TRIGGER FRIENDS_TRIGGER
BEFORE INSERT ON FRIENDS FOR EACH ROW
BEGIN
DECLARE TEMP INTEGER
BEGIN
IF (:new.USER1_ID > :new.USER2_ID) THEN
SET TEMP = :new.USER1_ID
SET :new.USER1_ID = :new.USER2_ID
SET :new.USER2_ID = TEMP
END IF
END
/
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)