gpt4 book ai didi

mysql - 在mysql中创建带有事务的过程

转载 作者:行者123 更新时间:2023-11-29 17:36:20 31 4
gpt4 key购买 nike

我真的需要帮助,mysql 很新。您需要编写一个事务来检查,如果插入数据,密码长度是否为4个字符,则事务回滚,否则该条目将被插入到表中。为了实现,我们使用了程序

                         ` CREATE PROCEDURE PROC (@id int (11), @log 
varchar (45), @em
varchar (45),
@pass int (45),@st int (11));
AS
BEGIN
BEGIN
START TRANSACTION;
INSERT INTO user
(`id_User`,`login`,`email`,`password`,`status`)
VALUES(@id, @log, @em, @pass, @st);
COMMIT
END
BEGIN
IF (length(@pass) < 4)
BEGIN
ROLLBACK
END
END
END`

最佳答案

对于你想做的事情,你根本不需要交易。您发布的代码已在回滚之前提交,因此即使密码长度小于 4 个字符,插入仍然会发生,并且不会有任何事务需要回滚。除此之外,您以错误的方式使用变量。但是,如果这就是您通过不向数据库添加任何条目来验证用户输入的方式,那么这是不好的做法。您应确保不能从表单提交少于 4 个字符的密码。

请看下面:

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc`(
v_id int (11),
v_log varchar (45),
v_em varchar (45),
v_pass int (45),
V_st int (11)
)
BEGIN
IF(LENGTH(v_pass) >= 4) THEN
INSERT INTO user (`id_User`,`login`,`email`,`password`,`status`)
VALUES(v_id,v_log, v_em, v_pass, V_st);
END IF;
END

希望这有帮助。

关于mysql - 在mysql中创建带有事务的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50251757/

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