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

Làm sắc nét và tạo ID dưới dạng instagram

Đây là tương đương với postgres

Chỉ định TABLE_SCHEMAMASKTABLE dưới đây

Tôi đang tạo một MASKTABLE với một mục đầu tiên giả

DELIMITER $$
CREATE OR REPLACE FUNCTION generate_next_id() RETURNS bigint NOT DETERMINISTIC
MAIN: BEGIN
DECLARE our_epoch bigint;
DECLARE seq_id bigint;
DECLARE now_millis bigint;
DECLARE shard_id int;
DECLARE param bigint ;
SET @our_epoch = 1568873367231;
SET @shard_id = 1;
SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = "SCHEMANAME" AND TABLE_NAME = "MASKTABLE" into @seq_id;
SELECT FLOOR(UNIX_TIMESTAMP()) * 1000 into @now_millis;
SELECT (@now_millis - @our_epoch) << 23 into @param;
SELECT @param | (@shard_id <<10) into @param; 
select @param | (@seq_id) into @param; 
RETURN @param;
END MAIN;$$ 
DELIMITER ;

Cách sử dụng

select generate_next_id()

Bạn có thể sử dụng nó trong trình kích hoạt như

CREATE TRIGGER trigger_name
BEFORE INSERT ON TableName 
FOR EACH ROW
SET new.id = generate_next_id();


  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 Gem cho Ruby On Rails

  2. tìm kiếm dữ liệu từ đầu vào html trong mysql

  3. MySQL nối tất cả các cột

  4. Truy vấn tìm kiếm PHP Mysql

  5. MySQL GROUP BY với tùy chọn