gpt4 book ai didi

php - 在 mysql 中创建一个更长的唯一自动增量列,第一行有 6 个字符

转载 作者:行者123 更新时间:2023-11-29 05:25:31 27 4
gpt4 key购买 nike

可以在 mysql 中创建一个自动增量列,我可以在一个列上创建一个自动生成的数字,该数字对所有行都是唯一的,并且随机数超过 6 个字符并且是字母数字吗?

我目前正在使用 PHP。

function randomCode(){
$alphabet = "8ABCDEFGIJKLMmNPQjhgkhjg";
$Code = array();
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < 8; $i++){
$n = rand(0, $alphaLength);
$Code[] = $alphabet[$n];
}
return implode($Code);
}

但问题是我无法控制存储在数据库中的代码的唯一性。

最佳答案

实际上,您不能在 MySQL 中本地执行此操作。此 DBMS 不支持序列。唯一受支持的自动选项是普通的 auto_increment - 通常是连续的(但是 - 是的,您可以对其进行一些小的调整,但是,这对您的情况没有帮助)。因此,您无法使用 MySQL 实现您的目标,您必须在您的应用程序中处理这个问题。

如果您希望您的序列是随机且唯一的 - 您可能需要查看 uniqid()功能。保证值是唯一的——至于长度,它肯定会超过 6 个字符。如需更多随机值,您可以结合使用 mt_rand()喜欢:

$long_value  = uniqid(mt_rand(),1); //long string, length > 30
$short_value = uniqid(); //short string, length < 20

关于php - 在 mysql 中创建一个更长的唯一自动增量列,第一行有 6 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20797416/

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