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

क्या क्रॉस टेबल अखंडता बाधाओं के लिए डेटाबेस ट्रिगर सुरक्षित हैं?

उत्तर है ट्रिगर सुरक्षित नहीं हैं

यह पता चला है कि ट्रिगर वास्तव में अन्य लेनदेन में किए गए असामान्य परिवर्तन नहीं देखता है और बिना किसी त्रुटि के गुजरता है। इसे इस तरह प्रदर्शित किया जा सकता है

लेन-देन 1:

START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,1); -- query A

लेन-देन 2:

START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,2); -- query B; in conflict with A, but passses

दोनों लेन-देन:

COMMIT;

अब plays_in इसमें दोनों सम्मिलित रिकॉर्ड शामिल होंगे, भले ही ए और बी को एक ही लेनदेन में निष्पादित किया गया हो, ट्रिगर एक त्रुटि फेंक देगा।

संपूर्ण उदाहरण स्रोत यहां प्राप्त किए जा सकते हैं



  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. किसी अन्य तालिका के MAX() मान द्वारा सेट किए गए MySQL परिणाम का आदेश देना

  3. मॉडल के लिए कोई क्वेरी परिणाम नहीं [App\Products] Laravel

  4. ClusterControl का उपयोग करके एक हाइब्रिड क्लाउड MySQL डेटाबेस परिनियोजित करें

  5. MYSQL बाएँ कई तालिकाओं से COUNTS में शामिल हों