zoukankan      html  css  js  c++  java
  • (4.24)【mysql、sql server】分布式全局唯一ID生成方案

    参考:分布式全局唯一ID生成方案:https://blog.csdn.net/linzhiqiang0316/article/details/80425437

     分表生成唯一ID方案

     sql server:

    -- 构造中间表,SYS_USERS_GOODS_IDENTITY(itemId bigint identity(1,1),now_date datetime) 
    1.@@identity
    2.SCOPE_IDENTITY()
    3.(4.17)sql server中的uuid获取与使用
    案例代码:

    INSERT
    INTO SYS_USERS_GOODS_IDENTITY SELECT GETDATE() SELECT @ItemID=@@identity
    当运行完插入语句后,执行select
    @@identity就可得到自动生成的id
    如果是sql server 最好用:
    select SCOPE_IDENTITY() as id 因为@@identity全局的 同类还有IDENT_CURRENT(‘table’) IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。 @@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。 SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值 SCOPE_IDENTITY@@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。

    mysql:

    1. select @@identity;
    2. select last_insert_id();
    
    多人同时写的话,不会相互影响。LAST_INSERT_ID();  是 connection 级的变量,各个不同连接相互之间不影响

    其实不加事务也可以。
    案例:
    start transaction;
    insert into login_log_tb(server_name) values ('服务器');
    select LAST_INSERT_ID(); 
    commit;
  • 相关阅读:
    本机可以,服务器却不行
    学习摘录1Hello, World!
    钻石问题
    OPEN OFFICE使用技巧
    操作符的重载
    函数重载
    关于“结构”好别扭的一段话
    多重继承
    OPEN OFFICE操作技巧3
    70个现代风格的HTML5 WordPress主题网站
  • 原文地址:https://www.cnblogs.com/gered/p/10899143.html
Copyright © 2011-2022 走看看