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

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

coldplay.xixi
풀어 주다: 2020-10-13 15:07:37
원래의
2294명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿