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

क्या mysql_query सब कुछ करता है

पुराने mysql एक्सटेंशन में विशेष रूप से लेनदेन नियंत्रण के लिए कार्य नहीं हैं, लेकिन आप जो चाहते हैं उसे करने के लिए आप SQL कथन जारी कर सकते हैं।

आप केवल एक लेन-देन शुरू करके एक लेन-देन की अवधि के लिए स्वत:प्रतिबद्धता बंद कर सकते हैं:

mysql_query("START TRANSACTION");

जैसे ही आप COMMIT या ROLLBACK करते हैं, ऑटोकॉमिट मोड डिफ़ॉल्ट पर वापस आ जाएगा।

mysql_query("COMMIT"); // or ROLLBACK

आप सत्र चर सेट करके अपने पूरे सत्र के लिए स्वत:प्रतिबद्धता बंद कर सकते हैं:

mysql_query("SET autocommit=0");

या इसे अपने MySQL उदाहरण पर विश्व स्तर पर बदलें ताकि यह सभी सत्रों के लिए डिफ़ॉल्ट को बदल दे:

mysql_query("SET GLOBAL autocommit=0");

या इसे /etc/my.cnf संपादित करके MySQL सेवा स्टार्टअप पर वैश्विक सेटिंग बदलने के लिए सेट करें:

[mysqld]
autocommit=0

यदि आप MySQL 5.1 का उपयोग करते हैं, तो आपको इसे थोड़ा अलग तरीके से करना होगा:

[mysqld]
init_connect='SET autocommit=0'

आप शायद पहले से ही जानते हैं, लेकिन यह दोहराता है कि लेन-देन का मतलब केवल तभी होता है जब आप InnoDB तालिकाओं का उपयोग कर रहे हों। MyISAM तालिकाएँ लेन-देन का समर्थन नहीं करती हैं, इसलिए आपकी सेटिंग्स पर ध्यान दिए बिना वे हमेशा स्वत:प्रतिबद्ध होती हैं। मेमोरी और सीएसवी सहित कई अन्य स्टोरेज इंजनों के साथ भी ऐसा ही है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सहायता | INSERT कथन की चयन सूची में सम्मिलित सूची की तुलना में कम आइटम हैं

  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:संचार लिंक विफलता

  3. MYSQL से MYSQLI में अपडेट हो रहा है

  4. फ्रेंच लहजे के साथ json_encode सरणी कैसे करें?

  5. MySQL पंक्तियों को जीवन भर देता है