我正在尝试创建一个STORED PROCEDURE用于UPDATE名为machine. 此表包含三列(machine_id和machine_name)reg_id。
STORED PROCEDURE
UPDATE
machine
machine_id
machine_name
reg_id
在上述表格中,reg_id( INT) 是一列,其值可以更改为 a machine_id。
INT
我想定义一个QUERY/PROCEDURE来检查reg_id该表中是否已经存在。如果是,则UPDATE该行,否则INSERT为新行。
QUERY
PROCEDURE
INSERT
有人可以帮我写那个QUERY/PROCEDURE吗?
唯一的问题是,您不能像普通查询一样使用它。IF或WHILE等控制结构仅允许在存储过程或函数中使用。
只需创建一个这样的过程:
delimiter $$ create procedure select_or_insert() begin IF EXISTS (select * from users where username = 'something') THEN update users set id= 'some' where username = 'something'; ELSE insert into users (username) values ('something'); END IF; end $$ delimiter ;
并这样称呼它:
call select_or_insert();