gpt4 book ai didi

MySQL自动生成值

转载 作者:行者123 更新时间:2023-11-29 14:34:52 24 4
gpt4 key购买 nike

我搜索了一段复杂的 SQL 代码,我现在有一个可以在它不存在时生成一个 0 - 100000 之间的随机值。

现在我想要下一个级别,当该值是随机字符串时,我需要插入一个新值,它从 1 开始,并且我需要将其(图表计数)更改为 32,此时字符串现在将返回一个字符串32 个字符。

字符串包含所有字符类型,包括特殊图表。

问题是我使用这个算法来获得折扣券,并且数字没有像包含 a-z 字符的数字那样有很多组合。

我希望有人可以帮助我进行搜索。

最佳答案

从您选择的字符集合生成随机字符串的函数:

DELIMITER $$

CREATE FUNCTION random_str() RETURNS char(32)
BEGIN
DECLARE chars varchar(500);
DECLARE rs char(32);
SET rs = '';
SET chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*_';
WHILE (LENGTH(rs) < 32) DO
SET rs = CONCAT(rs, SUBSTRING(chars, RAND() * LENGTH(chars), 1));
END WHILE;
RETURN rs;
END

值字段的唯一索引:

ALTER TABLE my_table 
ADD UNIQUE INDEX IX_str (str);

然后,我将确保在我的客户端代码中捕获一生一次的异常,或者您可以执行类似的操作来插入新值:

DECLARE c int;
DECLARE rs char(32);
SET c = 1;
WHILE (c > 0) DO
SET rs = random_string();
SELECT c = COUNT(*) FROM my_table WHERE str = rs;
END WHILE;
INSERT INTO my_table (str) VALUES (rs);

关于MySQL自动生成值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263684/

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