Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn MySQL với Vòng lặp Trong khi

Bạn không thể sử dụng WHILE như vậy đó; xem: mysql DECLARE WHILE bên ngoài quy trình được lưu trữ như thế nào?

Bạn phải đặt mã của mình trong một quy trình được lưu trữ. Ví dụ:

CREATE PROCEDURE myproc()
BEGIN
    DECLARE i int DEFAULT 237692001;
    WHILE i <= 237692004 DO
        INSERT INTO mytable (code, active, total) VALUES (i, 1, 1);
        SET i = i + 1;
    END WHILE;
END

Fiddle: http://sqlfiddle.com/#!2/a4f92/1

Ngoài ra, tạo danh sách INSERT câu lệnh sử dụng bất kỳ ngôn ngữ lập trình nào bạn thích; để tạo một lần, nó sẽ ổn. Ví dụ, đây là một lớp lót Bash:

for i in {2376921001..2376921099}; do echo "INSERT INTO mytable (code, active, total) VALUES ($i, 1, 1);"; done

Nhân tiện, bạn đã mắc lỗi đánh máy trong các con số của mình; 2376921001 có 10 chữ số, 237692200 chỉ có 9.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kết thúc một cuộc gọi không đồng bộ để hoạt động đồng bộ?

  2. Chọn ngày từ db của tôi mà không cần giây bằng PHP MySql

  3. Làm cách nào để hủy thao tác INSERT trong trình kích hoạt MySql?

  4. đăng nhập với tư cách người dùng hoặc quản trị viên từ 2 bảng khác nhau

  5. mysql - dấu thời gian tìm kiếm theo giờ trong ngày