Sử dụng vòng lặp để INSERT dữ liệu trong PostgreSQL


Trong trường hợp cần để kiểm tra hiệu suất (performance), chúng ta cần một lượng dữ liệu lớn trong CSDL. Vậy để INSERT nhiều dữ liệu vào bảng thì sử dụng vòng lặp for với câu lệnh INSERT là cách làm nhanh nhất.

PostgreSQL hỗ trợ sử dụng vòng lặp for với cú pháp nhứ sau:

[ <<label>> ]
FOR loop_counter IN [ REVERSE ] from.. to [ BY expression ] LOOP
    statements
END LOOP [ label ];

VD: Để thực hiện insert 1000 bản ghi vào bảng products có cấu trúc như sau:


Thì câu lệnh sẽ như sau:

do $$
begin
for i in 1..1000 loop
INSERT INTO products(product_id, product_name, category_id) VALUES (i, CONCAT('Sản phẩm ', i), 1);
end loop;
end;
$$;

Kết quả: 100 bản ghi đã được insert tới bảng products.

Dữ liệu trên bảng Products sau khi insert 1000 bản ghi có dạng:

Ngoài ra bạn có thể sử dụng for với câu lệnh UPDATE để cập nhật nhiều dữ liệu một lúc.

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web