>  기사  >  데이터 베이스  >  MySql에서 자동 증가 기본 키를 수동으로 얻는 방법

MySql에서 자동 증가 기본 키를 수동으로 얻는 방법

coldplay.xixi
coldplay.xixi원래의
2020-10-13 15:07:372249검색

MySQL에서 자동 증가 기본 키를 수동으로 얻는 방법: 저장 프로시저를 생성하고 함수를 추가하여 데이터를 얻기 위한 시퀀스 테이블을 유지 관리합니다. 코드는 [last_number = last_number + increment_by]입니다.

MySql에서 자동 증가 기본 키를 수동으로 얻는 방법

Mysql에서 자동 증가된 기본 키를 수동으로 얻는 방법:

  • 저장 프로시저를 만들고 함수를 추가하여 데이터를 얻기 위한 시퀀스 테이블을 유지합니다(한 번 해결하면 평생 사용). .

  • 각 증분의 크기와 초기 숫자를 지정할 수 있습니다.

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 tutorial(동영상)

위 내용은 MySql에서 자동 증가 기본 키를 수동으로 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.