Heim > Datenbank > MySQL-Tutorial > Hauptteil

Zusammenfassung der Verwendung von Sequence Sequence in MySQL

WBOY
Freigeben: 2022-09-13 18:01:45
nach vorne
3070 Leute haben es durchsucht

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 '用户名'
);
Nach dem Login kopieren

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'
);
Nach dem Login kopieren

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 ;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage