zoukankan      html  css  js  c++  java
  • Sqlserver批量生成10w不重复8位数字

    项目中需要批量生成100W不重复的8位数,百度了一大把,修改成了如下Sql,做下笔记,希望对看到的朋友有帮助(下面是生成10W条,条数自己改,性能还可以)

    表名:makeExtensionCode

    字段:extension_code, is_used, createTime,具体跟句自己需求改动

    CREATE PROCEDURE makeExtensionCode AS DECLARE
        @dt datetime
        SET @dt = GETDATE()
        SET NOCOUNT OFF DECLARE
            @row INT
        SET @row = 100000 --记录总数为10W
        WHILE @row > 0
        BEGIN
            RAISERROR ('need %d rows', 10, 1, @row) WITH NOWAIT
        SET ROWCOUNT @row INSERT weixin_extension_code SELECT
            extension_code = RIGHT (
                100000 + CONVERT (
                    bigint,
                    ABS(CHECKSUM(NEWID()))
                ),
                8
            ),
            is_used = 0,
            createTime = GETDATE()
        FROM
            syscolumns c1,
            sysobjects o
        SET @row = @row - @@ROWCOUNT --设置下次循环需要插入的记录数量

        --删除重复数据
        DELETE odao_mobile.dbo.weixin_extension_code
        WHERE
            extension_code IN (
                SELECT
                    extension_code
                FROM
                    odao_mobile.dbo.weixin_extension_code
                GROUP BY
                    extension_code
                HAVING
                    COUNT (extension_code) > 1
            )
        AND extension_code_id NOT IN (
            SELECT
                MIN (extension_code_id)
            FROM
                odao_mobile.dbo.weixin_extension_code
            GROUP BY
                extension_code
            HAVING
                COUNT (extension_code) > 1
        )
    END
    GO

  • 相关阅读:
    纯CSS制作二级导航
    用python写MapReduce函数——以WordCount为例
    hadoop安装配置——伪分布模式
    字符串中最长不重合子串长度
    从30岁到35岁:为你的生命多积累一些厚度
    Hbase快速开始——shell操作
    5句话
    []leetcode]Unique Paths II
    [leetcode]Gray Code
    linux 命令案例学习——文件搜索
  • 原文地址:https://www.cnblogs.com/wangfajun/p/5431818.html
Copyright © 2011-2022 走看看