【发布时间】:2011-12-10 17:18:10
【问题描述】:
我正在尝试编写一个存储过程来检查一个值是否存在,如果不存在,它将插入它。我遇到的问题是它不是stroing。此过程的架构是 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');
但桌子仍然是空的。我做错了吗?
【问题讨论】:
-
在 WHERE 子句中,Tag_id 似乎是数字,但在 INSERT 和示例调用中它是 VARCHAR(24)。什么数据类型是正确的?
-
were 子句将其读取为数字?我正在尝试查找是否存在任何带有 tag_id 的结果,所以我认为将 count 和
标签: mysql sql stored-procedures