MySQL触发器语法,用于根据用户ID进行排序

问题描述

我想在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 (将#修改为@)