[英]passing the value if exists to another insert query MySQL
I have the following query running against mysql: 我对mysql运行以下查询:
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `mybook_store`.`myProc`()
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
DECLARE authId INT DEFAULT 0;
DECLARE
DECLARE CheckExists INT DEFAULT 0;
SET CheckExists = 0;
SELECT COUNT(*) INTO CheckExists FROM author WHERE fname = 'xxxx' AND surname='xxxx';
IF (CheckExists > 0) THEN
SELECT authorid INTO authId FROM author WHERE fname = 'xxxx' AND surname='xxxx';
ELSE
INSERT author(fname, surname) VALUES('xxxx', 'xxxx');
SET authId = LAST_INSERT_ID();
END IF;
END$$
DELIMITER ;
the above query will check if the inserted author exists in author table if not it will insert it if exist will not insert... my questions: 上面的查询将检查插入的作者是否在作者表中,如果不存在,它将插入它,如果存在,则不会插入...我的问题:
thank you for your help 谢谢您的帮助
You're close, try this: 您接近了,试试这个:
DELIMITER $$
CREATE PROCEDURE myProc (IN f_fname VARCHAR(25), IN f_surname VARCHAR(25))
BEGIN
DECLARE checkExists INT DEFAULT 0;
DECLARE authId INT DEFAULT 0;
SELECT COUNT(*) INTO checkExists FROM author WHERE fname = f_fname AND surname = f_surname;
IF(checkExists > 0) THEN
SELECT authorId into authId FROm author WHERE fname = f_fname AND surname = f_surname;
ELSE
INSERT INTO author(fname, surname) VALUES (f_fname, f_surname);
SET authId = LAST_INSERT_ID();
END IF;
END$$
DELIMITER ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.