Rumah  >  Artikel  >  pangkalan data  >  Ringkasan cara menggunakan Sequence Sequence dalam MySQL

Ringkasan cara menggunakan Sequence Sequence dalam MySQL

WBOY
WBOYke hadapan
2022-09-13 18:01:453054semak imbas

Pembelajaran yang disyorkan: tutorial video mysql

Jika anda mahukan nilai jenis data peningkatan automatik berterusan dalam pangkalan data Oracle , yang boleh dicapai dengan mencipta urutan. Tiada urutan dalam pangkalan data MySQL. Biasanya jika jadual hanya memerlukan satu lajur autoincrement, maka kita boleh menggunakan auto_increment MySQL (jadual hanya boleh mempunyai satu kunci utama auto-increment). Jika kita ingin menggunakan jujukan dalam MySQL seperti Oracle, bagaimana kita harus melakukannya

Sebagai contoh, terdapat definisi jadual berikut:

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

user_id mestilah bertambah, dipesan dan unik. Terdapat banyak kaedah pelaksanaan, seperti algoritma kepingan salji, menggunakan Redis atau Zookeeper, dll. untuk mendapatkan nilai yang memenuhi syarat saya tidak akan memperkenalkannya satu per satu di sini. Di sini kami memperkenalkan cara menggunakan auto_increment MySQL dan last_insert_id() untuk melaksanakan urutan yang serupa dengan yang terdapat dalam Oracle.

Kaedah 1. Gunakan prosedur tersimpan

1. Cipta jadual ringkas yang mengandungi kunci utama peningkatan automatik.

Contohnya adalah seperti berikut:

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. Buat prosedur tersimpan

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 prosedur tersimpan Anda perlu memanggil prosedur tersimpan sekali dan kemudian menetapkan nilai, yang sedikit menyusahkan.

call pro_user_id_seq(@value);
select @value from dual;
Kaedah 2. Gunakan fungsi

1 Cipta fungsi yang menjana jujukan

2. Ujian

delimiter &&
create function user_id_seq_func() returns bigint
begin
    declare sequence bigint;
    insert into t_user_id_sequence (t_text) values ('a');
    select last_insert_id() into sequence from dual;
    delete from t_user_id_sequence;
    return sequence;
end &&
delimiter ;

Pembelajaran yang disyorkan:

tutorial video mysql
select user_id_seq_func() from dual;
 
insert into t_user (user_id, user_name) values (user_id_seq_func(), 'java');
select * from t_user;

Atas ialah kandungan terperinci Ringkasan cara menggunakan Sequence Sequence dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam