MySQL cho vòng lặp INSERT

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh vòng lặp WHILE của MySQL để thực thi một hoặc nhiều câu lệnh lặp đi lặp lại miễn là một điều kiện là đúng

Giới thiệu về câu lệnh vòng lặp MySQL WHILE

Vòng lặp WHILE là một câu lệnh vòng lặp thực thi một khối mã lặp đi lặp lại miễn là một điều kiện là đúng

Đây là cú pháp cơ bản của câu lệnh WHILE

[begin_label:] WHILE search_condition DO statement_list END WHILE [end_label]

Code language: SQL (Structured Query Language) (sql)

Trong cú pháp này

Đầu tiên, chỉ định điều kiện tìm kiếm sau từ khóa WHILE

WHILE kiểm tra

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
1 ở đầu mỗi lần lặp

Nếu

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
1 đánh giá thành

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
3, thì WHILE thực hiện

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
5 miễn là

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
1 là

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
3

Vòng lặp WHILE được gọi là vòng lặp kiểm tra trước vì nó kiểm tra

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
1 trước khi

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)
5 thực thi

Thứ hai, chỉ định một hoặc nhiều câu lệnh sẽ thực thi giữa các từ khóa

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
1 và

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
2

Thứ ba, chỉ định các nhãn tùy chọn cho câu lệnh WHILE ở đầu và cuối cấu trúc vòng lặp

Lưu đồ sau đây minh họa câu lệnh vòng lặp MySQL WHILE

MySQL cho vòng lặp INSERT
MySQL cho vòng lặp INSERT

Ví dụ về câu lệnh vòng lặp MySQL WHILE

Đầu tiên, tạo một bảng có tên_______9_______6 lưu trữ ngày và thông tin ngày bắt nguồn như ngày, tháng, quý và năm

CREATE TABLE calendars( id INT AUTO_INCREMENT, fulldate DATE UNIQUE, day TINYINT NOT NULL, month TINYINT NOT NULL, quarter TINYINT NOT NULL, year INT NOT NULL, PRIMARY KEY(id) );

Code language: SQL (Structured Query Language) (sql)

Thứ hai, tạo một thủ tục được lưu trữ mới để chèn một ngày vào bảng

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)

Thứ ba, tạo một thủ tục được lưu trữ mới

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
8 tải một số ngày bắt đầu từ ngày bắt đầu vào bảng

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)

Thủ tục được lưu trữ

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
8 chấp nhận hai đối số

  • DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    1 là ngày bắt đầu được chèn vào bảng

    DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    6
  • DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    3 là số ngày sẽ được nạp bắt đầu từ ngày

    DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    1

Trong thủ tục lưu sẵn

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
8

Đầu tiên, khai báo một biến

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6 và

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
7 để giữ các giá trị ngay lập tức. Các giá trị mặc định của

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6 và

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
7 lần lượt là

CALL LoadCalendars('2019-01-01',31);

Code language: SQL (Structured Query Language) (sql)
0 và

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
1

Sau đó, kiểm tra xem

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6 có nhỏ hơn hoặc bằng

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
3 không, nếu có

  • Gọi thủ tục lưu sẵn

    CALL LoadCalendars('2019-01-01',31);

    Code language: SQL (Structured Query Language) (sql)
    4 để chèn một hàng vào bảng

    DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    6
  • Tăng

    DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    6 lên một. Ngoài ra, hãy tăng

    DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

    Code language: SQL (Structured Query Language) (sql)
    7 lên một ngày bằng cách sử dụng hàm

    CALL LoadCalendars('2019-01-01',31);

    Code language: SQL (Structured Query Language) (sql)
    8

Vòng lặp WHILE liên tục chèn ngày tháng vào bảng

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6 cho đến khi

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6 bằng với

DELIMITER $$ CREATE PROCEDURE LoadCalendars( startDate DATE, day INT ) BEGIN DECLARE counter INT DEFAULT 1; DECLARE dt DATE DEFAULT startDate; WHILE counter <= day DO CALL InsertCalendar(dt); SET counter = counter + 1; SET dt = DATE_ADD(dt,INTERVAL 1 day); END WHILE; END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
3

Câu lệnh sau đây gọi thủ tục lưu sẵn

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
8 để tải 31 ngày vào bảng

DELIMITER $$ CREATE PROCEDURE InsertCalendar(dt DATE) BEGIN INSERT INTO calendars( fulldate, day, month, quarter, year ) VALUES( dt, EXTRACT(DAY FROM dt), EXTRACT(MONTH FROM dt), EXTRACT(QUARTER FROM dt), EXTRACT(YEAR FROM dt) ); END$$ DELIMITER ;

Code language: SQL (Structured Query Language) (sql)
6 bắt đầu từ WHILE5

CALL LoadCalendars('2019-01-01',31);

Code language: SQL (Structured Query Language) (sql)
MySQL cho vòng lặp INSERT
MySQL cho vòng lặp INSERT

Trong hướng dẫn này, bạn đã học cách sử dụng vòng lặp MySQL WHILE để thực hiện lặp đi lặp lại một hoặc nhiều câu lệnh miễn là một điều kiện là đúng.

Làm cách nào để chèn dữ liệu bằng LOOP trong MySQL?

Câu trả lời. BEGIN DECLARE var INT; . 00 giờ sáng. Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM.

Làm cách nào để chèn nhiều hàng trong MySQL bằng LOOP?

MySQL Chèn nhiều hàng .
Đầu tiên, chỉ định tên của bảng mà bạn muốn chèn sau từ khóa INSERT INTO
Thứ hai, chỉ định danh sách cột được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn sau tên bảng
Thứ ba, chỉ định danh sách dữ liệu hàng được phân tách bằng dấu phẩy trong mệnh đề GIÁ TRỊ. Mỗi phần tử của danh sách đại diện cho một hàng

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Ị ";

Bạn có thể LOOP trong MySQL không?

Ngôn ngữ chương trình được lưu trữ trong MySQL cung cấp ba loại vòng lặp . Vòng lặp đơn giản sử dụng mệnh đề LOOP và END LOOP. Các vòng lặp tiếp tục trong khi một điều kiện là đúng, sử dụng các mệnh đề WHILE và END WHILE. Các vòng lặp tiếp tục cho đến khi một điều kiện là đúng, sử dụng các mệnh đề REPEAT và UNTIL.