MySQL的更新插入语句问题

MySQL的更新插入语句问题

表如上,我不把ID作为唯一判断是否重复,因为我需要新增的时候会自动生成ID(一个ID生成器给的ID值,就不能拿它作为唯一键判断是否重复),我要拿STUDENT_ID作为唯一判断

IF EXISTS(SELECT * FROM `student` WHERE STUDENT_ID='20200001') THEN

BEGIN

UPDATE `student` SET `ID`='1', `NAME`='王五', `STUDENT_ID`='20200001' WHERE `student_id`='20200001';

END;

ELSE

BEGIN

INSERT INTO `student`(`ID`, `NAME`, `STUDENT_ID`) VALUES('1', '王五', '20200001');

END;

END IF;

以上是我自己写的但是有报错

IF EXISTS(SELECT * FROM `student` WHERE STUDENT_ID='20200001') THEN

BEGIN

UPDATE `student` SET `ID`='1', `NAME`='王五', `STUDENT_ID`='20200001' WHERE `student_id`='20200001'

> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT * FROM `student` WHERE STUDENT_ID='20200001') THEN

BEGIN

UPD' at line 1

> 时间: 0s

请问应该怎么写?

回答

问题补充:

MySQL版本:8.0.21

实际上我需要做的操作是一个更新插入的功能,我需要选一列作为一个是否重复的依据来进行更新插入,ID是肯定在数据里面是没有的,我不可能拿ID作为依据来插入,我目前就只能想到这种方法进行更新插入了

以上是 MySQL的更新插入语句问题 的全部内容, 来源链接: utcz.com/a/82839.html

回到顶部