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