我正在尝试编写一个存储过程,检查是否存在值,如果不存在,它将插入它。我所遇到的问题是它没有运转。此过程的模式是tag_id VARCHAR(24)主键和标签varchar(255)
创建程序
DELIMITER //
CREATE PROCEDURE `create_tag_not_exist` (IN tag_id VARCHAR(24), IN tag VARCHAR(255))
BEGIN
IF(SELECT COUNT(*) FROM tags WHERE tag_id = tag_id <= 0 ) THEN
INSERT INTO tags(tag_id, tag) VALUES (tag_id, tag);
END IF;
END //
将数据插入其中
call create_tag_not_exist('abc123', 'doeraeme');
桌子仍然是空的。难道我做错了什么?
最佳答案
尝试这个
DELIMITER //
CREATE PROCEDURE `create_tag_not_exist` (IN tagID VARCHAR(24),
IN tag VARCHAR(255))
BEGIN
IF( (SELECT COUNT(*) FROM tags WHERE tag_id = TagID)<1) THEN
INSERT INTO tags(tagID, tag) VALUES (tag_id, tag);
END IF;
END //
我将参数名称从Tag_id更改为TagID,以防止字段名称和参数名称混淆。
关于mysql - MySQL存储过程不存储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8458345/