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

क्या MySQL व्यू में डेटा डालना संभव है?

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

आप इस विषय पर अधिक जानकारी के लिए निम्नलिखित लेख देख सकते हैं:

निम्नलिखित उदाहरण पर विचार करें:

CREATE TABLE table_a (id int, value int);
CREATE TABLE table_b (id int, ta_id int, value int);

INSERT INTO table_a VALUES (1, 10);
INSERT INTO table_a VALUES (2, 20);
INSERT INTO table_a VALUES (3, 30);

INSERT INTO table_b VALUES (1, 1, 100);
INSERT INTO table_b VALUES (2, 1, 200);
INSERT INTO table_b VALUES (3, 2, 300);
INSERT INTO table_b VALUES (4, 2, 400);

अब एक दृश्य बनाते हैं:

CREATE VIEW v AS 
    SELECT      a.id a_id, b.id b_id, b.ta_id, a.value v1, b.value v2
    FROM        table_a a
    INNER JOIN  table_b b ON (b.ta_id = a.id);

SELECT * FROM v;
+------+------+-------+------+------+
| a_id | b_id | ta_id | v1   | v2   |
+------+------+-------+------+------+
|    1 |    1 |     1 |   10 |  100 |
|    1 |    2 |     1 |   10 |  200 |
|    2 |    3 |     2 |   20 |  300 |
|    2 |    4 |     2 |   20 |  400 |
+------+------+-------+------+------+
4 rows in set (0.00 sec)

निम्नलिखित INSERT विफल:

INSERT INTO v (a_id, b_id, ta_id, v1, v2) VALUES (3, 5, 3, 30, 500);
-- ERROR 1393 (HY000): Can not modify more than one base table through a join view 

लेकिन हम इसे दो कार्यों में विभाजित कर सकते हैं:

INSERT INTO v (a_id, v1) VALUES (3, 30);
-- Query OK, 1 row affected (0.00 sec)
INSERT INTO v (b_id, ta_id, v2) VALUES (5, 3, 500);
-- Query OK, 1 row affected (0.00 sec)

परिणाम:

SELECT * FROM v;
+------+------+-------+------+------+
| a_id | b_id | ta_id | v1   | v2   |
+------+------+-------+------+------+
|    1 |    1 |     1 |   10 |  100 |
|    1 |    2 |     1 |   10 |  200 |
|    2 |    3 |     2 |   20 |  300 |
|    2 |    4 |     2 |   20 |  400 |
|    3 |    5 |     3 |   30 |  500 |
+------+------+-------+------+------+
6 rows in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TO_DAYS () उदाहरण – MySQL

  2. अद्वितीय यादृच्छिक अल्फ़ान्यूमेरिक वर्ण उत्पन्न करें जो 7 वर्ण लंबे हों

  3. जावास्क्रिप्ट में उपयोग करने के लिए mysql डेटाबेस से डेटा प्राप्त करें

  4. मूल्यों के 24 घंटे

  5. MySQL गंभीर त्रुटि:विशेषाधिकार तालिकाओं को खोल और लॉक नहीं कर सकता:गलत फ़ाइल स्वरूप 'उपयोगकर्ता'