Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL: एक पंक्ति डालें और सामग्री प्राप्त करें


स्टोर्ड प्रोसीजर का उपयोग करें

एक पंक्ति डालने और तुरंत उसकी सामग्री प्राप्त करने के लिए, एक स्टोर्ड प्रोसीजर बनाएं जो INSERT करता है और फिर LAST_INSERT_ID() का उपयोग करके डाली गई पंक्ति को चुनता है।

टेबल बनाना

mysql> CREATE TABLE InsertRecord_SelectTable (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20),
    PRIMARY KEY(Id)
);

स्टोर्ड प्रोसीजर बनाना

mysql> DELIMITER //
mysql> CREATE PROCEDURE Insert_select (
    IN tempName VARCHAR(40)
)
BEGIN
    DECLARE tempId INT UNSIGNED;
    INSERT INTO InsertRecord_SelectTable(Name) VALUES (tempName);
    SET tempId = LAST_INSERT_ID();
    SELECT * FROM InsertRecord_SelectTable WHERE Id = tempId;
END //
mysql> DELIMITER ;

प्रोसीजर कॉल करना

CALL Insert_select('John');

आउटपुट

+----+------+
| Id | Name |
+----+------+
|  1 | John |
+----+------+
1 row in set (0.12 sec)

व्याख्या

  1. IN tempName VARCHAR(40) — इनपुट पैरामीटर।
  2. DECLARE tempId INT UNSIGNED — स्थानीय वेरिएबल ID संग्रहीत करने के लिए।
  3. INSERT ... VALUES (tempName) — रिकॉर्ड डालता है।
  4. SET tempId = LAST_INSERT_ID() — नवीनतम ऑटो-इन्क्रीमेंट ID प्राप्त करता है।
  5. SELECT * ... WHERE Id = tempId — डाली गई पूरी पंक्ति लौटाता है।

लाभ

  • एटॉमिक ऑपरेशन: डालना और पढ़ना एक ही कॉल में।
  • रेस कंडीशन से सुरक्षित: LAST_INSERT_ID() कनेक्शन-विशिष्ट है।
  • एप्लिकेशन कोड सरल होता है: केवल CALL करें।

नोट

यदि आप केवल ID चाहते हैं, तो SELECT LAST_INSERT_ID() पर्याप्त है। पूरी पंक्ति के लिए उपरोक्त पैटर्न का उपयोग करें।

  1. - MySQL स्टोर्ड प्रोसीजर और फंक्शन में क्या अंतर है?

    स्टोर्ड प्रोसीजर MySQL में, एक स्टोर्ड प्रोसीजर को CALL स्टेटमेंट की मदद से बुलाया जाता है। एक स्टोर्ड प्रोसीजर एक से अधिक मान (multiple values) वापस कर सकता है। डिफ़ॉल्ट रूप से, एक स्टोर्ड प्रोसीजर 0 वापस करता है। इसका उपयोग SQL क्वेरी के अंदर नहीं किया जा सकता और यह प्री-कंपाइल (pre-compiled) पर आ

  1. - MySQL में BIT और TINYINT में क्या अंतर है?

    BIT का उपयोग 1 बिट की वैल्यू स्टोर करने के लिए किया जा सकता है। यह 0 या 1 हो सकता है। हम उदाहरण के लिए 2 को BIT डेटा टाइप के साथ स्टोर नहीं कर सकते। यदि हम BIT डेटा टाइप के साथ 2 इन्सर्ट करने का प्रयास करते हैं, तो MySQL एरर देता है। TINYINT का उपयोग 8 बिट्स की वैल्यू स्टोर करने के लिए किया जा सकत

  1. Python में MySQL डेटाबेस में INSERT के बाद ID कैसे प्राप्त करें? Python में MySQL डेटाबेस में INSERT के बाद ID कैसे प्राप्त करें?

    सबसे पहले, हमें नीचे दी गई आवश्यकताओं को पूरा करने की आवश्यकता है। निम्न पूर्वापेक्षाएँ हैं। हमें MySQL वर्जन 8.0.12 इंस्टॉल करना होगा। हमें Python वर्जन 3.6.3 (32 बिट) इंस्टॉल करना होगा। हमें pip कमांड की मदद से pymysql इंस्टॉल करना होगा। pip कमांड की मदद से pymysql इंस्टॉल करने के लिए। डेट