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

Mô phỏng SEQUENCE an toàn cho giao dịch trong MySQL

Nếu tự động tăng không đủ tốt cho nhu cầu của bạn, bạn có thể tạo cơ chế trình tự nguyên tử với n các chuỗi được đặt tên như thế này:

Tạo một bảng để lưu trữ các trình tự của bạn:

CREATE TABLE sequence (
  seq_name varchar(20) unique not null,
  seq_current unsigned int not null
);

Giả sử bạn có một hàng cho 'foo' trong bảng, bạn hoàn toàn có thể lấy id dãy tiếp theo như sau:

UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;

Không cần khóa. Cả hai câu lệnh cần được thực thi trong cùng một phiên để biến cục bộ @next thực sự được xác định khi lựa chọn xảy ra.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phương pháp nào tốt hơn để xác thực thông tin đăng nhập của người dùng?

  2. Java / Mysql..SQLException:Một bảng phải có ít nhất 1 cột SQLState:42000 VendorError:1113

  3. Hàng html đầu tiên không được hiển thị

  4. Chuyển đổi dấu thời gian thành ngày tháng trong truy vấn MySQL

  5. Lỗi cú pháp SQL - không thể tìm thấy lỗi