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

SQL अपडेट स्टेटमेंट को चलाने से पहले उसका परीक्षण कैसे करें?

लेनदेन के बारे में क्या? उनके पास रोलबैक-सुविधा है।

@देखें https://dev.mysql.com/doc/refman /5.0/hi/commit.html

उदाहरण के लिए:

START TRANSACTION;
SELECT * FROM nicetable WHERE somthing=1;
UPDATE nicetable SET nicefield='VALUE' WHERE somthing=1;
SELECT * FROM nicetable WHERE somthing=1; #check

COMMIT;
# or if you want to reset changes 
ROLLBACK;

SELECT * FROM nicetable WHERE somthing=1; #should be the old value

नीचे दिए गए @rickozoe के प्रश्न का उत्तर:

सामान्य तौर पर इन पंक्तियों को एक बार की तरह निष्पादित नहीं किया जाएगा। पीएचपी में एफ.ई. आप ऐसा कुछ लिखेंगे (शायद थोड़ा साफ, लेकिन जल्दी जवाब देना चाहते थे;-)):

$MysqlConnection->query('START TRANSACTION;');
$erg = $MysqlConnection->query('UPDATE MyGuests SET lastname='Doe' WHERE id=2;');
if($erg)
    $MysqlConnection->query('COMMIT;');
else
    $MysqlConnection->query('ROLLBACK;');

दूसरा तरीका यह होगा कि आप MySQL वेरिएबल्स का उपयोग करें (देखें https:/ /dev.mysql.com/doc/refman/5.7/hi/user-variables.htm भूमिhttps://stackoverflow.com/a/18499823/1416909 ):

# do some stuff that should be conditionally rollbacked later on

SET @v1 := UPDATE MyGuests SET lastname='Doe' WHERE id=2;
IF(v1 < 1) THEN
    ROLLBACK;
ELSE
    COMMIT;
END IF;

लेकिन मैं आपकी पसंदीदा प्रोग्रामिंग भाषा में उपलब्ध भाषा रैपर का उपयोग करने का सुझाव दूंगा।



  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 में, क्या GROUP_CONCAT से 1024 से अधिक वर्ण वापस प्राप्त करना संभव है?

  2. नई मैसकली वस्तु शून्य है

  3. बिना शर्त के mysql जॉइन का उपयोग कैसे करें?

  4. PHP में MySQL परिणामों के माध्यम से पुनरावृति करते हुए भविष्य के डुप्लिकेट मानों का पता लगाएं

  5. एक्सेल करने के लिए एक MySQL क्वेरी के परिणाम निर्यात करना?