Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mô phỏng tăng tự động trong MySQL / InnoDB

Sử dụng bảng trình tự và trình kích hoạt - tương tự như sau:

drop table if exists users_seq;

create table users_seq
(
next_seq_id int unsigned not null default 0
)engine = innodb;

drop table if exists users;

create table users
(
user_id int unsigned not null primary key,
username varchar(32) not null
)engine = innodb;

insert into users_seq values (0);

delimiter #

create trigger users_before_ins_trig before insert on users
for each row
begin

declare id int unsigned default 0;

  select next_seq_id + 1 into id from users_seq;

  set new.user_id = id;

  update users_seq set next_seq_id = id;

end#

delimiter ;

insert into users (username) values ('f00'),('bar'),('bish'),('bash'),('bosh');

select * from users;
select * from users_seq;

insert into users (username) values ('newbie');

select * from users;
select * from users_seq;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xem trạng thái và biến hệ thống trong MySQL Workbench bằng GUI

  2. MySQL Row 30153 đã bị cắt bởi lỗi GROUP_CONCAT ()

  3. Lỗi nghiêm trọng với fetch_assoc bên trong một hàm

  4. quyền truy cập bị từ chối đối với người dùng @ 'localhost' vào cơ sở dữ liệu ''

  5. Truy vấn con trả về giải pháp nhiều hơn 1 hàng cho truy vấn cập nhật bằng cách sử dụng câu lệnh select