gpt4 book ai didi

MySQL:过程参数问题

转载 作者:行者123 更新时间:2023-11-29 21:30:44 25 4
gpt4 key购买 nike

我的程序似乎有问题。当我执行它时,它应该创建一个条目,直接修改一个列,然后返回它的 id。

但是没有创建任何内容,也没有返回任何内容(甚至没有显示错误)

当我使用硬编码值而不是使用参数时,会创建条目,但不会编辑,并且仍然不会返回 ID。

你们能看一下吗?这是使用phpMyAdmin导出功能的整个过程结果:

CREATE DEFINER=`dbuser`@`localhost` PROCEDURE `createRecruitment`(IN `p_user_id` INT(11), IN `p_platform` ENUM('uplay','steam','ps4','xb1') CHARSET utf8, IN `p_activity` ENUM('pve','pvp') CHARSET utf8, IN `p_description` TEXT CHARSET utf8)
MODIFIES SQL DATA
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN
DECLARE v_id INT(11);

INSERT INTO
recruitments (
user_id,
creationDate,
platform_id,
activity,
description
)
SELECT
p_user_id,
CURRENT_TIMESTAMP,
platforms.id,
p_activity,
p_description
FROM
platforms
WHERE
platforms.platform = p_platform;

SET v_id = LAST_INSERTED_ID();

UPDATE
recruitments
SET
lastActivity = creationDate
WHERE
id = v_id;

SELECT v_id;
END

编辑

看来主要问题是“p_platform”参数。我想将输入限制为给定的 ENUM,但似乎 WHEREplatforms.platform=p_platform 无法正常工作。

最佳答案

使用以下 SP。我已经使用 OUT v_id 字段并分配值

CREATE DEFINER=`dbuser`@`localhost` PROCEDURE `createRecruitment`(IN `p_user_id` INT(11), IN `p_platform` ENUM('uplay','steam','ps4','xb1') CHARSET utf8, IN `p_activity` ENUM('pve','pvp') CHARSET utf8, IN `p_description` TEXT CHARSET utf8, OUT `v_id` INT(11))
MODIFIES SQL DATA
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN


INSERT INTO
recruitments (
user_id,
creationDate,
platform_id,
activity,
description
)
SELECT
p_user_id,
CURRENT_TIMESTAMP,
platforms.id,
p_activity,
p_description
FROM
platforms
WHERE
platforms.platform = p_platform;

SET v_id = LAST_INSERTED_ID();

UPDATE
recruitments
SET
lastActivity = creationDate
WHERE
id = v_id;


END

关于MySQL:过程参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35291685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com