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

mysql निहित प्रतिबद्धता को कैसे रोकें?

एक और हैकी दृष्टिकोण जिसे मैंने अभी सफलतापूर्वक कोशिश की है वह है MySQL विशिष्ट कमांड के माध्यम से तालिका तालिका डीडीएल बनाना

SHOW CREATE TABLE `tableName`

फिर कुछ रेगेक्सपी जादू बनाएं और एक नई डीडीएल क्वेरी तैयार करें जो मूल तालिका के आधार पर एक अस्थायी तालिका तैयार करेगी, जिसमें सभी तालिका परिवर्तन तालिका में शामिल किए जाएंगे।

मेरे PHP आधारित प्रोजेक्ट में, मैंने अस्थायी तालिका में एक अद्वितीय अनुक्रमणिका जोड़ने के लिए निम्न कार्य किया। इसने चाल चली और लेन-देन के बीच कोई और अंतर्निहित प्रतिबद्धता नहीं हुई।

$createDDL = ... get from SHOW CREATE TABLE `tableName`
$nr = 0;
$createDDL = preg_replace("/CREATE TABLE `$tableName` \(/", "CREATE TEMPORARY TABLE `$tmpName` (\nUNIQUE `ukey-1` ($uniqCols),", $createDDL, -1, $nr);
if (!$nr)
  throw new Exception("CREATE TABLE replacement error. No reps made.");
mysqli_query($con, $createDDL);

संपादित करें वैसे यहां कुछ बग (फीचर) रिपोर्ट (कई सालों से) हैं। पहले में आप एक प्रतिक्रिया (2006 से डेटिंग) देख सकते हैं जिसमें कहा गया है:चूंकि यह व्यवहार ऑरैकल डीबी जैसा ही है, यह सुसंगत है...

हो सकता है कि इस सुविधा अनुरोध को पुनर्जीवित करने के लिए एक सुविधा अनुरोध "स्पैमिंग अभियान" शुरू किया जाना चाहिए!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरे वेब ऐप के लिए मेट्रिक्स कैसे स्टोर करें?

  2. एंड्रॉइड को सीधे डेटाबेस से कनेक्ट क्यों न करें?

  3. कई शब्दों के खिलाफ mysql मैच

  4. MySQL क्वेरी:कॉमा सेपरेटेड स्ट्रिंग वाले कॉलम के साथ कॉमा सेपरेटेड वैल्यू का मिलान करें

  5. MySQL - प्रत्येक 'समूह' से केवल 2 पंक्तियों का चयन करें