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

phpMyAdmin में MySQL स्टोर्ड प्रोसीजर बनाकर टेबल में डेटा डालना

समाधान: INSERT के लिए स्टोर्ड प्रोसीजर

पुन: प्रयोज्य, सुरक्षित डेटा सम्मिलन के लिए पैरामीटरयुक्त स्टोर्ड प्रोसीजर बनाएं।

व्यावहारिक उदाहरण

टेबल बनाना

mysql> CREATE TABLE StoredProcedureInsertDemo (
    -> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName VARCHAR(20),
    -> UserAge INT
    -> );

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

mysql> DELIMITER //
mysql> CREATE PROCEDURE procedure_InsertIntoTable(
    ->     IN FirstName VARCHAR(100),
    ->     IN Age INT
    -> )
    -> BEGIN
    ->     INSERT INTO StoredProcedureInsertDemo(UserName, UserAge) 
    ->     VALUES (FirstName, Age);
    -> END
    -> //
Query OK, 0 rows affected (0.34 sec)

mysql> DELIMITER ;

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

mysql> CALL procedure_InsertIntoTable('Larry', 23);
Query OK, 1 row affected, 1 warning (0.19 sec)

परिणाम देखना

mysql> SELECT * FROM StoredProcedureInsertDemo;
+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1      | Larry    | 23      |
+--------+----------+---------+

स्टोर्ड प्रोसीजर के लाभ

  • पुन: प्रयोज्यता: एक बार लिखें, कई बार कॉल करें
  • सुरक्षा: SQL इंजेक्शन रोकथाम (पैरामीटर बाइंडिंग)
  • प्रदर्शन: पार्स/ऑप्टिमाइज़ एक बार, कई बार निष्पादित
  • एनकैप्सुलेशन: व्यावसायिक तर्क डेटाबेस में
  • अनुमति: टेबल पर सीधे INSERT अधिकार दिए बिना EXECUTE अधिकार दें

उन्नत प्रोसीजर उदाहरण

सत्यापन के साथ

CREATE PROCEDURE insert_user_validated(
    IN p_name VARCHAR(100),
    IN p_age INT,
    OUT p_user_id INT,
    OUT p_status VARCHAR(50)
)
BEGIN
    IF p_age < 0 OR p_age > 150 THEN
        SET p_status = 'INVALID_AGE';
        SET p_user_id = 0;
    ELSEIF CHAR_LENGTH(TRIM(p_name)) = 0 THEN
        SET p_status = 'EMPTY_NAME';
        SET p_user_id = 0;
    ELSE
        INSERT INTO users(name, age) VALUES (TRIM(p_name), p_age);
        SET p_user_id = LAST_INSERT_ID();
        SET p_status = 'SUCCESS';
    END IF;
END

लेनदेन के साथ

CREATE PROCEDURE insert_with_transaction(
    IN p_name VARCHAR(100),
    IN p_email VARCHAR(100)
)
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        ROLLBACK;
        RESIGNAL;
    END;
    
    START TRANSACTION;
    INSERT INTO users(name) VALUES (p_name);
    INSERT INTO user_emails(user_id, email) VALUES (LAST_INSERT_ID(), p_email);
    COMMIT;
END

phpMyAdmin में बनाना

  1. डेटाबेस चुनें → Routines टैब
  2. Add routine क्लिक करें
  3. नाम: procedure_InsertIntoTable
  4. प्रकार: PROCEDURE
  5. पैरामीटर जोड़ें: FirstName VARCHAR(100) IN, Age INT IN
  6. बॉडी में SQL डालें
  7. Go क्लिक करें

कॉल करना

CALL procedure_InsertIntoTable('John', 25);
CALL procedure_InsertIntoTable('Jane', 30);
  1. - MySQL स्टोर्ड प्रोसीजर में टेबल में डेटा कैसे इन्सर्ट करें?

    MySQL स्टोर्ड प्रोसीजर के अंदर INSERT स्टेटमेंट का उपयोग करके टेबल में डेटा इन्सर्ट कर सकते हैं। पैरामीटर लेकर डायनामिक इन्सर्ट करने वाला प्रोसीजर पुन: उपयोग योग्य और सुरक्षित होता है। सिंटैक्स CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE, ...) BEGIN INSERT INTO table_name (co

  1. - Java में MySQL LIKE के साथ खोज वेरिएबल का उपयोग करते समय उद्धरण चिह्नों का सही उपयोग

    सही सिंटैक्स String sqlQuery = SELECT * FROM yourTableName WHERE yourColumnName LIKE % + searchVariable + %; उदाहरण टेबल बनाएं: INSERT INTO demo19 (name) VALUES (John Smith), (David Miller), (Adam Smith), (Chris Brown); Java कोड String searchKeyWord = Smith; String sqlQuery = SELECT * FROM demo19

  1. डेटा द्वारा समर्थित: परफेक्ट प्रोफेशनल ईमेल कैसे लिखें डेटा द्वारा समर्थित: परफेक्ट प्रोफेशनल ईमेल कैसे लिखें

    प्रभावी ईमेल लिखना काफी आसान लगता है। लेकिन अगर आप चाहते हैं कि आपके ईमेल और भी बेहतर प्रदर्शन करें, तो निम्नलिखित विज्ञान-समर्थित नियमों को ध्यान में रखें। अतीत में, हमने 12 कारण सूचीबद्ध किए हैं कि लोग अभी भी आपके ईमेल को नज़रअंदाज क्यों कर रहे हैं। हमने आपको व्यस्त लोगों को आपके संदेशों का जवाब द