首页 > 其他分享 >记一次自增主键id换为随机id

记一次自增主键id换为随机id

时间:2023-10-30 20:33:52浏览次数:27  
标签:自增 SET temp -- 主键 new id

原始表自增主键为Long类型

为了不影响原有逻辑使用触发器

新建mysql触发器

DROP TRIGGER IF EXISTS `insert_trigger`;

DELIMITER //
CREATE TRIGGER insert_trigger BEFORE INSERT ON user
FOR EACH ROW
BEGIN
DECLARE new_id INT;
DECLARE temp_id INT;
SET new_id = FLOOR(RAND() * 1000000000); -- 1000000000以内随机数结果为9位数的概率为0.999999999
-- 检查生成的ID是否已存在
SET temp_id = (SELECT COUNT(*) FROM user WHERE id = new_id);
WHILE temp_id > 0 DO
SET new_id = FLOOR(RAND() * 1000000000); -- 重新生成新的随机ID
SET temp_id = (SELECT COUNT(*) FROM user WHERE id = new_id);
END WHILE;

SET NEW.id = new_id; -- 重新生成新的随机ID
END //
DELIMITER ;

 

标签:自增,SET,temp,--,主键,new,id
From: https://www.cnblogs.com/cgy-home/p/17798717.html

相关文章

  • 安卓平板,学习平板、三防工业平板Android主板定制方案
    近年来,平板设备在生活和工业领域应用不断增长。学习平板和工业intelligent设备的销量都处在高速发展阶段。预计到2024年,我国平板总出货量将继续增长。安卓平板采用高度集成设计,将多媒体解码、液晶驱动、USB接口、以太网、HDMI输出、TF卡插槽、WiFi、人体感应、串口、......
  • 【idea】提示 language level 5 的解决方案
     当我们使用泛型或者JDK1.5之后的特性的时候,idea如果 languagelevel5的解决方案,那么,只要在maven pom.xml手动指定插件版本就行。<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactI......
  • QTreeWidget 的搜索实时显示功能
    QTreeWidget的子条目很多时候需要提供实时的搜索功能,以便能快速找到所需要的条目。代码如下://1.创建当输入框文本变化时的信号槽。connect(ui.lineEditSearch,&QLineEdit::textChanged,this,&Demo01_GUI::OnFindItem);//2.槽函数实现检索时,实时显示符合要求的QTre......
  • 浅析5种常见的RAID技术
    RAID RAID(RedundantArrayofIndependentDisks)全称为独立磁盘冗余阵列,简称为磁盘阵列。 RAID是指利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组的技术,目的为提升性能或资料冗余,或是两者同时提升 最常用的五种RAID为RAID0、RAID1、RAID2、RAID5、......
  • MySQL系列:binlog日志详解(参数、操作、GTID、优化、故障演练)
    目录简介作用系统参数--log_bin--server_id--binlog_format--sync-binlog(双一标准)--gtid-mode(gtid)--enforce-gtid-consistency(gtid)--expire-logs-day(优化参数)--binlog_cache_size(优化参数)--max_binlog_cache_size(优化参数)--max_binlog_size(优化参数)sql_log_bin日志操作开启日......
  • video标签播放黑屏,只有声音无图像
    原链接:https://www.jianshu.com/p/23927bf4b634在做视频上传时,发现有的视频上传之后无法播放的问题,在手机(ios)上却可以显示一、先从video标签讲起在2000年代初期到后期,网络上的视频播放主要依靠Flash插件,这是因为当时没有其它方法可以在浏览器上流式传输视频,然而,并非所有浏览器......
  • Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值
    cxGrid,数据库中存在:GongSiNo,GongSiMc;cxGrid中显示列GongSiMc,Properties指定的是ComBoBox,GongSiMc变化时更新GongSiNo的值并存入数据库。在Properties的OnChange事件中写代码:{GSNo,GSMc:string;}GSMc:=cxgrdCZYDBTableView1.Controller.EditingController.Edit.EditingValue;......
  • Android Studio无法启动虚拟机
    TheemulatorprocessforAVDhasterminated网上很多这个问题的解决方案,当然也是有不同的原因的1、就是.android路径的问题,不在SDK目录下,那就乾坤大挪移呗2、可能是磁盘空间不足,自己清理吧3、就是那个模拟器的性能设置那里了,automatic或者hardware的都不行,那就试试software的我这......
  • Before You Install Flask...Watch This! Flask Fridays #1
    flask官网:https://flask.github.net.cn/ git官网:https://git-scm.com/ 建立文件: 建立虚拟环境、激活: sourcevirt/Scripts/activate建立文件: touchhello.py以项目方式打开: fromflaskimportFlask,render_template#创建一个flask实例app=Flask(_......
  • QTreeWidget 添加右键菜单
    有时需要为QTreeWidget的子条目添加右键菜单功能,主要有两种方案来实现:方案一该方案比较通用,通过为QTreeWidget建立信号槽,在接受itemPressed的信号时会被触发,然后判断当前是否为鼠标右键,若为鼠标右键则创建添加对应的菜单栏,并提供相应的功能。//1.QTreeWidget*tree为......