· 8 years ago · Aug 10, 2018, 07:20 PM
1MySQL Stored Procedure Not Storing
2DELIMITER //
3
4CREATE PROCEDURE `create_tag_not_exist` (IN tag_id VARCHAR(24), IN tag VARCHAR(255))
5BEGIN
6IF(SELECT COUNT(*) FROM tags WHERE tag_id = tag_id <= 0 ) THEN
7INSERT INTO tags(tag_id, tag) VALUES (tag_id, tag);
8END IF;
9END //
10
11call create_tag_not_exist('abc123', 'doeraeme');
12
13DELIMITER //
14
15 CREATE PROCEDURE `create_tag_not_exist` (IN tagID VARCHAR(24),
16 IN tag VARCHAR(255))
17 BEGIN
18 IF( (SELECT COUNT(*) FROM tags WHERE tag_id = TagID)<1) THEN
19 INSERT INTO tags(tagID, tag) VALUES (tag_id, tag);
20 END IF;
21 END //
22
23drop table if exists tags;
24create table tags
25(
26tag_id smallint unsigned not null primary key,
27name varchar(255) unique not null
28)
29engine=innodb;
30
31drop procedure if exists insert_tag;
32
33delimiter #
34
35create procedure insert_tag
36(
37in p_tag_id smallint unsigned,
38in p_name varchar(255)
39)
40proc_main:begin
41
42 if exists (select 1 from tags where tag_id = p_tag_id) then
43 leave proc_main;
44 end if;
45
46 insert into tags (tag_id, name) values (p_tag_id, p_name);
47
48end proc_main #
49
50delimiter ;
51
52call insert_tag(1,'tag one');
53call insert_tag(2,'tag two');
54call insert_tag(1,'tag one');
55call insert_tag(3,'tag three');
56
57select * from tags;
58
59IF (SELECT COUNT(*) FROM tags where tag_id = _tagid) = 0 THEN
60 THEN
61 INSERT INTO tags(tag_id, tag) VALUES (_tagid, _tag);
62 END IF;
63
64WHERE tag_id = tag_id
65
66WHERE tag_id = parameter_tag_id
67
68FROM tags WHERE tags.tag_id = tag_id