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

Trường ID bảng tăng dần với tính năng đếm bit

Để giải quyết tất cả các vấn đề ở trên, tôi đã có thể tạo ra những điều sau đây hoạt động tốt!

DELIMITER $$
CREATE TRIGGER testbitcompatid BEFORE INSERT ON Table
    FOR EACH ROW 
    BEGIN
        SET @LAST_ROW = (SELECT MAX(id) FROM Table);
        SET NEW.id = CASE WHEN @LAST_ROW IS NULL THEN 1 ELSE @LAST_ROW * 2 END;

    END;
$$
DELIMITER ;

Khá nhiều, chúng tôi lấy id cao nhất , lấy log(2) trong số đó cung cấp cho chúng ta AUTO_INCREMENT tương ứng id . Sau đó, chúng tôi thêm 1 và cấp nguồn cho tối đa 2 .

Tôi hy vọng điều này sẽ giúp tránh một số cơn đau đầu cho những người khác.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql FIND_IN_SET trong mệnh đề where

  2. Chuyển đổi chuỗi sang định dạng dấu thời gian MySQL trong php

  3. Truy vấn được tham số hóa trả về (các) cột TEXT luôn trả về 0 cho các cột INT

  4. Tại sao Hibernate không tạo cơ sở dữ liệu cho MySQL?

  5. Cách tốt nhất để xử lý việc lưu trữ / hiển thị ngày tháng ở các múi giờ khác nhau trong PHP?