db テーブル内の特定のレコードの存在を確認したい。存在する場合は更新し、存在しない場合は更新する 新しいレコードを追加したい
そのためにストアドプロシージャを使用しています。最初に更新ステートメントを作成し、それが発生して0を返すかどうかを確認したい場合、更新ステートメントの影響を受けるレコードはなく、レコードが存在しないことを意味します。
私はこのように作ります
DELIMITER //
CREATE PROCEDURE revokePrivilegeFromUsers(IN userId int(11), IN privilegeId int(11), IN deletedBy int(11))
BEGIN
DECLARE isExist int;
isExist = update `user_privileges` set `mode` ='d' ,`updated_by` = deletedBy, `date_time_assigned` = CURRENT_TIMESTAMP() where `user_id`= userId and `privilege_id`=privilegeId;
IF isExist == 0 THEN
insert into `user_privileges`(`user_id`,`privilege_id`,`mode`,`date_time_assigned`,`updated_by`)values (userId ,privilegeId ,'d',CURRENT_TIMESTAMP(),deletedBy );
END IF;
END //
DELIMITER ;
このエラーは私に発生します
#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 '= update `user_privileges` set `mode` ='d' ,`updated_by` = deletedBy, `date_time' at line 6
私の作業方法は mysql でサポートされていますか?