Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

इंस्टाग्राम के रूप में शेयरिंग और आईडी जनरेशन

यह पोस्टग्रेज समतुल्य है

निर्दिष्ट करें TABLE_SCHEMA और MASKTABLE नीचे

मैं एक MASKTABLE बना रहा हूं डमी फर्स्ट एंट्री के साथ

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 ;

उपयोग

select generate_next_id()

आप इसे ट्रिगर में इस्तेमाल कर सकते हैं जैसे

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 में SLEEP () का सही तरीके से उपयोग कैसे और कब करें?

  2. ड्रॉप टेबल यदि MySQL में मौजूद है

  3. अंतरराष्ट्रीय और बहुभाषी उद्देश्यों के लिए डेटाबेस मॉडलिंग

  4. mysql में साउंडएक्स () को कैसे क्वेरी करें?

  5. मैं मल्टी टेबल जॉइन में पैरेंट टेबल का संदर्भ कैसे दूं?