gpt4 book ai didi

MYSQL SP 不循环

转载 作者:行者123 更新时间:2023-11-29 00:10:17 24 4
gpt4 key购买 nike

我发现了一个很棒的 SQL 语句,它会屏蔽生产数据 (Howto generate meaningful test data using a MySQL function)。

我正在尝试将其添加为存储过程。

当我从查询中运行该函数时,它运行良好。

但是,当我从 SP 调用该函数时,记录是随机的,但具有相同的数据。我如何让 SP 像查询调用一样随机化每条记录????

所以如果我运行这个:

UPDATE MAINTBL 
SET first_name = (SELECT str_random('Cc{3}c(4)')),
last_name = (SELECT str_random('Cc{5}c(6)')),
email = (SELECT str_random('c{3}c(5)[.|_]c{8}c(8)@[google|yahoo|live|mail]".com"')),

我明白了:

first_name || last_name  || email
===========================================================
Xstpvb || Slbynwcigi || vgsbtnl_obpvhahigqkfte@live.com
Vohv || Nyeaqbn || rtrc_nkjotdkpxhsrf@google.com
Nkjpxqm || Ogrosyjwi || ystbfz.egrowrtsnq@live.com
Mdig || Cccepmxlla || tqxuwz.jzwjfborpufpi@mail.com

但是当我把它放在 SP 中时:

DROP PROCEDURE IF EXISTS mask_data;

CREATE PROCEDURE mask_data()
BEGIN
UPDATE MAINTBL
SET first_name = (SELECT str_random('Cc{3}c(4)')),
last_name = (SELECT str_random('Cc{5}c(6)')),
email = (SELECT str_random('c{3}c(5)[.|_]c{8}c(8)@[google|yahoo|live|mail]".com"')),
END;

Then call it from a query:
call mask_data;

我在每条记录中得到相同的输出:

first_name || last_name  || email
Ofgtlmz || Mndbynbepn || vpngah.vcaxkhhmgqkd@yahoo.com
Ofgtlmz || Mndbynbepn || vpngah.vcaxkhhmgqkd@yahoo.com
Ofgtlmz || Mndbynbepn || vpngah.vcaxkhhmgqkd@yahoo.com
Ofgtlmz || Mndbynbepn || vpngah.vcaxkhhmgqkd@yahoo.com

我做错了什么???

最佳答案

(从未回答中得到这个)

通过删除不必要的 SELECTs 修复。

关于MYSQL SP 不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25507233/

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