Ringkasan cara menggunakan Sequence Sequence dalam MySQL

WBOY
Lepaskan: 2022-09-13 18:01:45
ke hadapan
3069 orang telah melayarinya

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 '用户名'
);
Salin selepas log masuk

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'
);
Salin selepas log masuk

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 ;
Salin selepas log masuk

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;
Salin selepas log masuk
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 ;
Salin selepas log masuk

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;
Salin selepas log masuk

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

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan