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

MySQL में दो ऑटो इंक्रीमेंट कॉलम कैसे बनाएं?

पता नहीं क्यों आपको दो कॉलम ऑटो इंक्रीमेंटिंग वैल्यू की आवश्यकता है, इसका कोई मतलब नहीं है ... लेकिन अगर आप जोर देते हैं -
आप इसे यूडीएफ या एसपी में पूरा कर सकते हैं इस तरह आपके पास कई कॉलम ऑटो इंक्रीमेंटिंग वैल्यू हैं।

उदाहरण #1:संग्रहित प्रक्रिया (SP)


तालिका

CREATE TABLE tests (
    test_id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    test_num INT(10) NULL,
    test_name VARCHAR(10) NOT NULL
);



संग्रहीत प्रक्रिया

DELIMITER $$
CREATE PROCEDURE autoInc (name VARCHAR(10))
    BEGIN
        DECLARE getCount INT(10);

        SET getCount = (
            SELECT COUNT(test_num)
            FROM tests) + 1;

        INSERT INTO tests (test_num, test_name)
            VALUES (getCount, name);
    END$$
DELIMITER ;



एसपी को कॉल करें

CALL autoInc('one');
CALL autoInc('two');
CALL autoInc('three');



तालिका ऊपर देखें

SELECT * FROM tests;

+---------+----------+-----------+
| test_id | test_num | test_name |
+---------+----------+-----------+
|       1 |       1  | one       |
|       2 |       2  | two       |
|       3 |       3  | three     |
+---------+----------+-----------+



उदाहरण #2:उपयोगकर्ता-परिभाषित कार्य (यूडीएफ)


तालिका
CREATE TABLE tests (
    test_id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    test_num INT(10) NULL,
    test_name VARCHAR(10) NOT NULL
);



उपयोगकर्ता द्वारा परिभाषित कार्य

DELIMITER $$
CREATE FUNCTION autoInc ()
    RETURNS INT(10)
    BEGIN
        DECLARE getCount INT(10);

        SET getCount = (
            SELECT COUNT(test_num)
            FROM tests) + 1;

        RETURN getCount;
    END$$
DELIMITER ;



यूडीएफ का उपयोग करके सम्मिलित करें

INSERT INTO tests (test_num, test_name) VALUES (autoInc(), 'one');
INSERT INTO tests (test_num, test_name) VALUES (autoInc(), 'two');
INSERT INTO tests (test_num, test_name) VALUES (autoInc(), 'three');



तालिका ऊपर देखें

SELECT * FROM tests;

+---------+----------+-----------+
| test_id | test_num | test_name |
+---------+----------+-----------+
|       1 |       1  | one       |
|       2 |       2  | two       |
|       3 |       3  | three     |
+---------+----------+-----------+

इनका परीक्षण और सत्यापन किया गया है। मैं व्यक्तिगत रूप से फ़ंक्शन का उपयोग करूंगा, यह अधिक लचीला है।



  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 ऑटो-ट्रिम अक्षम करें

  2. संदर्भ प्रलेखन में mysql DISTINCT () को कैसे परिभाषित करता है?

  3. रूबी ऑन रेल्स 3 OSX पर सॉकेट '/tmp/mysql.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता

  4. विंडोज़ के लिए एक्सएएमपीपी में mysql क्लाइंट .my.cnf का स्थान क्या है?

  5. MySQL सी # async विधियां काम नहीं करती हैं?