MySQL에서 자동 증가 기본 키를 수동으로 얻는 방법: 저장 프로시저를 생성하고 함수를 추가하여 데이터를 얻기 위한 시퀀스 테이블을 유지 관리합니다. 코드는 [last_number = last_number + increment_by]입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!