Comment obtenir manuellement la clé primaire d'auto-incrémentation dans MySQL : maintenir une table de séquences pour obtenir des données en créant une procédure stockée et en ajoutant une fonction. Le code est [last_number = last_number + incrément_by].

Méthode manuelle MySQL pour obtenir la clé primaire à incrémentation automatique :
Ajouter par créer une procédure stockée Maintenir une table de séquence pour obtenir des données de manière fonctionnelle (la résoudre une fois et l'utiliser à vie).
Vous pouvez spécifier la taille de chaque incrément et le numéro initial.
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;
Plus de recommandations d'apprentissage gratuites associées :tutoriel mysql(vidéo)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
mysql modifier le nom de la table de données
MySQL crée une procédure stockée
La différence entre MongoDB et MySQL
Comment vérifier si le mot de passe MySQL est oublié
mysql créer une base de données
niveau d'isolement des transactions par défaut de MySQL
La différence entre sqlserver et mysql
mysqlmot de passe oublié