最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySql如何手动获取自增主键

来源:动视网 责编:小采 时间:2020-11-09 05:50:27
文档

MySql如何手动获取自增主键

MySql如何手动获取自增主键:mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据,代码为【last_number = last_number + increment_by】。mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据
推荐度:
导读MySql如何手动获取自增主键:mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据,代码为【last_number = last_number + increment_by】。mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据


mysql手动获取自增主键的方法:

  • 通过创建存储过程外加函数的方式维护一张sequences表来获取数据(一次解决终身受用)。

  • 可以指定每次自增的大小,以及初始数。

  • select nextval('TESTDATA') AS batchId
    CREATE DEFINER=`admin`@`%` FUNCTION `nextval`(seq_name VARCHAR (50)) RETURNS bigint(20)
    BEGIN
     UPDATE
     SEQUENCES
     SET
     last_number = last_number + increment_by
     WHERE sequence_name = seq_name;
     RETURN currval (seq_name);
    END;
    CREATE DEFINER=`admin`@`%` FUNCTION `currval`(seq_name VARCHAR (50)) RETURNS bigint(20)
     NO SQL
    BEGIN
     
     SELECT
     last_number INTO @VALUE
     FROM
     SEQUENCES
     WHERE sequence_name = seq_name;
     RETURN @VALUE;
    END;
    DROP TABLE IF EXISTS `sequences`;
    CREATE TABLE `sequences` (
     `sequence_owner` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
     `sequence_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
     `min_value` bigint(20) NULL DEFAULT 1,
     `max_value` bigint(20) NULL DEFAULT NULL,
     `increment_by` bigint(20) NOT NULL DEFAULT 1,
     `cycle_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
     `order_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
     `cache_size` bigint(20) NOT NULL,
     `last_number` bigint(20) NOT NULL,
     PRIMARY KEY (`sequence_name`) USING BTREE,
     UNIQUE INDEX `sel`(`sequence_owner`, `sequence_name`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Compact;
     
    -- ----------------------------
    -- Records of sequences
    -- ----------------------------
    INSERT INTO `sequences` VALUES ('SCM', 'TESTDATA', 1, 9999999999, 1, 'N', 'Y', 20, 0);
    INSERT INTO `sequences` VALUES ('SCM', 'SEQ', 1, 9999999999, 1, 'N', 'N', 20, 0);
     
    SET FOREIGN_KEY_CHECKS = 1;

    更多相关免费学习推荐:mysql教程(视频)

    文档

    MySql如何手动获取自增主键

    MySql如何手动获取自增主键:mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据,代码为【last_number = last_number + increment_by】。mysql手动获取自增主键的方法:通过创建存储过程外加函数的方式维护一张sequences表来获取数据
    推荐度:
    标签: id 如何 如何获取
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top