Mysql2 chèn nhiều hàng
Vì vậy, giả sử bạn có một mảng dữ liệu lớn và bạn muốn chèn tất cả dữ liệu này vào cơ sở dữ liệu. Thực hiện một vòng lặp for và tạo một kết nối mới cho từng phần dữ liệu đơn lẻ là cách làm không tốt và rất kém hiệu quả. Chúng ta sẽ xem xét một số cách để có thể đạt được điều này một cách dễ dàng và một số cách để làm cho quy trình trở nên mạnh mẽ hơn Show Kết nối với cơ sở dữ liệuVì vậy, để bắt đầu, hãy tạo một kết nối mysql mới. Trước tiên, hãy đảm bảo rằng chúng tôi có các gói mô-đun nút cần thiết
Tiếp theo hãy tiếp tục và tạo một kết nối mới. Tôi sẽ sử dụng ES6 cho các ví dụ mã
Ghi chú. bạn cần nhập các giá trị máy chủ, người dùng, mật khẩu và cơ sở dữ liệu của riêng mình Bây giờ chúng ta có một kết nối tiêu chuẩn, hãy xem ví dụ về câu lệnh INSERT
Chỉ cần lướt qua mã một cách nhanh chóng;
Sử dụng liên kết tham sốVì vậy, như bạn có thể đã nhận thấy ở trên, chúng tôi đã bắt đầu sử dụng liên kết tham số gốc cho gói NodeJS. Tuy nhiên, điều gì sẽ xảy ra nếu chúng tôi có 5 người dùng để chèn. Làm những gì chúng tôi đã làm ở trên, gấp 5 lần sẽ là một phương pháp rất kém hiệu quả. Chúng tôi không muốn tạo 5 kết nối mới và loại bỏ từng kết nối Vì vậy, hãy sử dụng nhiều chức năng chèn gốc
Vì vậy, có một số điều cần đặc biệt chú ý ở đây
Xây dựng truy vấn SQL thủ côngVậy điều gì sẽ xảy ra nếu tất cả dữ liệu của bạn không nhất quán và bạn cần thực hiện những thay đổi nhỏ đối với truy vấn khi bạn chuyển qua dữ liệu. Chà, có thể sử dụng phương thức thoát của mysql theo cách thủ công. Tôi sẽ đi vào lý do tại sao chúng ta cần làm điều này trong một bài đăng khác, nhưng đủ để nói rằng, bạn phải
Sau đó, khá đơn giản, chỉ cần lặp qua dữ liệu của bạn (mảng hoặc đối tượng) và xây dựng chuỗi truy vấn của bạn tại một thời điểm. Như bạn có thể thấy, chúng tôi chỉ tạo truy vấn chèn mới nếu chỉ mục đầu tiên của dữ liệu không phải là 'fred'. Bạn có thể làm điều này phức tạp như bạn muốn để tạo ra các truy vấn năng động hơn bao giờ hết VUI LÒNG đảm bảo rằng bạn thoát khỏi TẤT CẢ các tham số, nếu không, bạn có thể để bản thân mở rộng cho SQL Injection, điều này thật tệ Kích thước gói tối đaVì vậy, tôi thực sự không gặp phải nhiều lỗi khi triển khai điều này trong một hệ thống trực tiếp, vì vậy tôi không có nhiều lời khuyên về những gì sai và tại sao; Tôi đã cố gắng chèn hàng loạt khoảng 180.000 bản ghi từ một tệp CSV và tôi liên tục gặp lỗi. Khi tôi lần theo lỗi trở lại đầu ra của MySQL trong bảng điều khiển, tôi có thể thấy rằng máy chủ MySQL của mình đang chạy với một ‘maximum_allowed_packet’ khá nhỏ Để kiểm tra kích thước gói hiện tại bạn đã đặt, chỉ cần chạy lệnh này và lệnh bên dưới để cập nhật biến Ai đó có thể giúp tôi chèn nhiều hàng bằng mariadb không, đã kiểm tra trên stackoverflow mà không có giải pháp nào trong trường hợp của tôi. Tôi có thể chèn một hàng tốt, nhưng khi cần chèn 2 hàng, tôi gặp lỗi cú pháp. Tôi đã thử đặt tham số giá trị trong ngoặc nhưng không thành công Đây là mã của tôi const config = require('../config'); const mariadb = require('mariadb'); const pool = mariadb.createPool({ host: config.database.host, user: config.database.user, port: config.database.port, password: config.database.password, database: config.database.database, multipleStatements: true, connectionLimit: 5 }); app.post('/questions', (req, res) => { let values = []; for (var i = 0; i < multiAnswerId.length; i++) { values.push(new Array(quiz_id, question_id, multiAnswerId[i], multiCorrect[i], time_start, userPicks.time_stop, student_id)); } var sql = `INSERT INTO Govt_choice_response (Quiz_id, Question_id, Answer_id, Correct, Time_start, Time_stop, Student_id) VALUES ?`; pool.query(sql, values, (err, data) => { }) .then( rows => { if (question_id > qTotal) { res.send(` You finished the test! (Make a page later here with maybe some user data) `) } question_id ++; res.redirect('/questions'); }) .catch(err => { console.log(err); }) }); } Bình luậnNội dung được sao chép trên trang web này là tài sản của chủ sở hữu tương ứng và nội dung này không được MariaDB xem xét trước. Quan điểm, thông tin và ý kiến được thể hiện bởi nội dung này không nhất thiết đại diện cho quan điểm của MariaDB hoặc bất kỳ bên nào khác Bạn có thể chèn nhiều hàng trong SQL cùng một lúc không?Truy vấn INSERT-SELECT-UNION để chèn nhiều bản ghi
. Truy vấn SQL UNION giúp chọn tất cả dữ liệu đã được bao quanh bởi truy vấn SELECT thông qua câu lệnh INSERT.
Làm cách nào để chèn 10000 bản ghi trong MySQL?Điều này sẽ làm điều đó trong một câu lệnh SQL. $sql=" CHÈN VÀO wp_usermeta ('user_id', 'meta_key', 'meta_value') GIÁ TRỊ ";
Làm cách nào để chèn 100 hàng trong SQL?Để cộng các hàng, người dùng cần sử dụng câu lệnh chèn. . cú pháp Ví dụ – Một bảng có tên sinh viên phải được chèn các giá trị vào đó. Nó phải được thực hiện như sau Đầu ra – Đầu ra – chèn nhiều hàng. Một bảng có thể lưu trữ tối đa 1000 hàng trong một câu lệnh chèn. . cú pháp Ví dụ – Xét một học sinh ngồi bàn. . Đầu ra – Làm cách nào để chèn 1500 bản ghi trong SQL?SỬ DỤNG Khách hàngDB; . khoảng 130 cột nữa. ); . ),. 1500 hàng nữa |