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

Cách chèn nhiều hàng trong cùng một bảng-Oracle 10g

INSERT VALUES câu lệnh luôn chèn chính xác 1 hàng. Nếu bạn muốn chèn nhiều hàng với các giá trị được mã hóa cứng, cách tiếp cận phổ biến nhất sẽ đơn giản là thực thi hai INSERT riêng biệt tuyên bố.

insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);

Nếu bạn thực sự muốn, bạn có thể chọn các giá trị được mã hóa cứng của mình từ dual và sau đó thực hiện INSERT SELECT

insert into t1
  select 131309, 'HP', '20-FEB-04',2000000,1235 from dual
  union all
  select 131310,'HT','20-APR-14',120020,1234 from dual

Hoặc bạn có thể thực hiện INSERT ALL

insert all 
  into t1 values(131309,'HP','20-FEB-04',2000000,1235)
  into t1 values(131310,'HT','20-APR-14',120020,1234)
  select * from dual

Cá nhân tôi chỉ sử dụng hai câu lệnh.

Mặc dù điều này không liên quan đến câu hỏi của bạn, nhưng một vài nhận xét

  • Luôn luôn, luôn liệt kê các cột trong insert của bạn bản tường trình. Bạn sẽ làm cho SQL của mình mạnh mẽ hơn nhiều để nếu bạn thêm các cột mới trong tương lai cho phép NULL giá trị các câu lệnh của bạn sẽ vẫn hoạt động. Và bạn sẽ tránh được nhiều lỗi khi danh sách cột ở ngay đó thay vì hy vọng rằng ai đó nhớ thứ tự các cột trong bảng.
  • Nếu bạn đang chèn một giá trị vào một date , hãy sử dụng một ngày không phải là một chuỗi ký tự đại diện cho một ngày. Việc dựa vào chuyển đổi kiểu dữ liệu ngầm là nguồn gốc của nhiều lỗi. Sử dụng to_date rõ ràng hoặc sử dụng các ký tự ngày ANSI. Và sử dụng năm 4 chữ số.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố khi tạo bảng động

  2. Chức năng xếp hạng trong MySQL với mệnh đề Order By

  3. Cơ sở dữ liệu Oracle 21c dành cho nền tảng Linux

  4. Liferay:Không tìm thấy trình điều khiển phù hợp

  5. Thu thập hàng loạt vào và thực hiện ngay lập tức trong Oracle