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

बिटवाइज काउंटिंग के साथ इंक्रीमेंट टेबल आईडी फील्ड

उपरोक्त सभी मुद्दों को हल करने के लिए, मैं निम्नलिखित का निर्माण करने में सक्षम था जो बहुत अच्छा काम करता है!

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 ;

काफी हद तक, हम उच्चतम id लेते हैं , log(2) को पकड़ो इसका जो हमें संबंधित AUTO_INCREMENT . देता है id . फिर हम 1 . जोड़ते हैं , और शक्ति जो 2 . तक है .

मुझे आशा है कि यह दूसरों के लिए सड़क के नीचे कुछ सिरदर्द को रोकने में मदद करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:परिणाम सेट की शुरुआत से पहले

  2. मेल खाने वाले टैग वाले आइटम को मिलान करने वाले टैग की संख्या के आधार पर ऑर्डर करना

  3. MySQL क्वेरी, सभी रिक्त स्थान हटाएं

  4. MYSQL के लिए Google OAuth 2.0 उपयोगकर्ता आईडी डेटाटाइप

  5. लेन-देन के लिए JPA EntityManager नहीं खोल सका; नेस्टेड अपवाद है javax.persistence.PersistenceException