所以我最终决定开始学习如何使用存储过程,虽然我确实让它们正常工作,但我不确定我是否正确地做了 - 也就是说.的最佳方式.所以这就是我所拥有的.
三个程序:TryAddTag,CheckTagExists和AddTag.
TryAddTag是我在其他代码(例如PHP等)和其他两个过程之间的中介的过程,因此这是被调用的过程.
TryAddTag
DELIMITER //
CREATE PROCEDURE TryAddTag(
IN tagName VARCHAR(255)
)
BEGIN
-- Check if tag already exists
CALL CheckTagExists(tagName, @doesTagExist);
-- If it does not exist, add it
IF @doesTagExist = FALSE THEN
CALL AddTag(tagName);
END IF;
END //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
AddTag
DELIMITER //
CREATE PROCEDURE AddTag(
IN tagName VARCHAR(255)
)
BEGIN
INSERT INTO
tags
VALUES(
NULL,
tagName
);
END //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
CheckTagExists
DELIMITER //
CREATE PROCEDURE CheckTagExists(
IN
tagName VARCHAR(255),
OUT …Run Code Online (Sandbox Code Playgroud)