Heim  >  Artikel  >  Datenbank  >  Zusammenfassung der Verwendung von Sequence Sequence in MySQL

Zusammenfassung der Verwendung von Sequence Sequence in MySQL

WBOY
WBOYnach vorne
2022-09-13 18:01:453012Durchsuche

Empfohlenes Lernen: MySQL-Video-Tutorial

Wenn Sie einen kontinuierlichen, sich selbst erhöhenden Datentypwert in der Oracle-Datenbank wünschen, können Sie eine Sequenz erstellen. In der MySQL-Datenbank gibt es keine Reihenfolge. Wenn eine Tabelle normalerweise nur eine Spalte für die automatische Inkrementierung benötigt, können wir auto_increment von MySQL verwenden (eine Tabelle kann nur einen Primärschlüssel für die automatische Inkrementierung haben). Wenn wir Sequenzen in MySQL wie Oracle verwenden möchten, wie sollten wir das tun?

Zum Beispiel gibt es die folgende Tabellendefinition:

create table `t_user`(
    `id` bigint auto_increment primary key,
    `user_id` bigint unique comment '用户ID',
    `user_name` varchar(10) not null default '' comment '用户名'
);

wobei user_id automatische Inkrementierung, Reihenfolge und Eindeutigkeit erfordert. Es gibt viele Implementierungsmethoden, wie den Snowflake-Algorithmus, die Verwendung von Redis oder Zookeeper usw., um einen Wert zu erhalten, der die Bedingungen erfüllt. Ich werde sie hier nicht einzeln vorstellen. Hier stellen wir vor, wie man mit MySQLs auto_increment und last_insert_id() eine ähnliche Sequenz wie in Oracle implementiert.

Methode 1. Verwenden Sie gespeicherte Prozeduren

1. Erstellen Sie eine einfache Tabelle mit einem automatisch inkrementierenden Primärschlüssel.

Das Beispiel lautet wie folgt:

create table `t_user_id_sequence` (
    `id` bigint not null auto_increment primary key,
    `t_text` varchar(5) not null default '' comment 'insert value'
);

2. Erstellen Sie eine gespeicherte Prozedur

delimiter &&
create procedure `pro_user_id_seq` (out sequence bigint)
begin
    insert into t_user_id_sequence (t_text) values ('a');
    select last_insert_id() into sequence from dual;
    delete from t_user_id_sequence;
end &&
delimiter ;

3. Testen Sie die gespeicherte Prozedur, indem Sie die gespeicherte Prozedur einmal aufrufen und dann den Wert zuweisen, was etwas mühsam ist.

Methode 2. Verwenden Sie die Funktion

1. Erstellen Sie eine Funktion, die eine Sequenz generiert

Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendung von Sequence Sequence in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen