社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Aquaholic

Aquaholic 最近创建的主题
Aquaholic 最近回复了
3 年前
回复了 Aquaholic 创建的主题 » 在MySQL中生成唯一字符串的最简单方法是什么?[重复]

SQL触发器非常复杂,而且占用大量资源。针对基于MySQL“触发器”的解决方案,这里有一个更简单的解决方案。

  1. 在MySQL表列上创建一个唯一的索引,它将保存车辆牌照字符串。这将确保只输入唯一的值。
  2. 只需在Lua(或任何其他编程语言,如ASP、PHP、Java等)中生成标准字母数字随机字符串即可
  3. 使用生成的字符串执行INSERT语句,并使用错误捕获代码来解析失败(在唯一索引冲突的情况下)
  4. 如果插入失败,则生成一个新的随机字符串并重新插入。8个字符的长度本身很难重复,一旦在表中找到,生成另一个字符几乎不可能是另一个重复。

这将在DB服务器上更轻、更高效。

下面是PHP中的一个示例(伪)代码:

function refercode()
{
    $string = '';
    $characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $max = strlen($characters) - 1;
    for ($i = 0; $i < 8; $i++) {
        $string .= $characters[mt_rand(0, $max)];
    }
    $refer = "select * from vehicles where refer_code = '".$string."' ";
    $coderefertest = mysqli_query($con,$refer);

    if(mysqli_num_rows($coderefertest)>0)
    {
        return refercode();
    }
    else
    {
        return $string;
    }
}
$refer_by = refercode();