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

पर्ल डीबीआई mysql देशी एकाधिक डालने की क्षमता का उपयोग करके एकाधिक पंक्तियां डालें

दो दृष्टिकोण हैं। आप (?, ?, ?) . डाल सकते हैं सरणी के आकार के आधार पर कई बार। टेक्स्ट में हेरफेर कुछ इस तरह होगा:

my $sql_values = join( ' ', ('(?, ?, ?)') x scalar(@array) );

फिर execute() . को कॉल करने के लिए ऐरे को समतल करें . कांटेदार स्ट्रिंग और सरणी हेरफेर के कारण मैं इस तरह से बचूंगा जिसे करने की आवश्यकता है।

दूसरा तरीका है लेन-देन शुरू करना, फिर एक ही इंसर्ट स्टेटमेंट को कई बार चलाना।

my $sql = 'INSERT INTO tbl (col1, col2, col3)';
$dbh->{AutoCommit} = 0;
my $sth = $dbh->prepare_cached( $sql );
$sth->execute( @$_ ) for @array;
$sth->finish;
$dbh->{AutoCommit} = 1;

यह पहली विधि की तुलना में थोड़ा धीमा है, लेकिन यह अभी भी कथन को दोबारा करने से बचाता है। यह पहले समाधान के सूक्ष्म जोड़तोड़ से भी बचता है, जबकि अभी भी परमाणु है और डिस्क I/O को अनुकूलित करने की अनुमति देता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. opencart - टेम्पलेट फ़ाइल के अंदर मॉड्यूल को मैन्युअल रूप से कैसे प्रदर्शित करें?

  2. MySQL में तिथियों की तुलना करें

  3. MySQL या MariaDB डेटाबेस से कैसे कनेक्ट करें

  4. अतिथि वर्चुअलबॉक्स से होस्ट में mysql एक्सेस करें

  5. मारियाडीबी 10 सेंटोस 7 चलती डेटादिर संकट