全部产品
Search
文档中心

PolarDB:INSERT

更新时间:Jul 02, 2025

Menambahkan baris ke dalam tabel.

Sintaksis

INSERT INTO table[subquery][@dblink ] [ ( column [, ...] ) ]
  { VALUES ( { expression | DEFAULT } [, ...] )
    [ RETURNING return_expression [, ...]
        { INTO { record | variable [, ...] }
        | BULK COLLECT INTO collection [, ...] } ]
  | query }

Deskripsi

Pernyataan INSERT digunakan untuk menyisipkan baris baru ke dalam tabel. Anda dapat menyisipkan satu baris sekaligus atau beberapa baris sebagai hasil dari query.

Kolom-kolom dapat dicantumkan dalam urutan yang diinginkan. Setiap kolom yang tidak disebutkan akan disisipkan dengan nilai default, baik itu nilai default yang dideklarasikan atau null.

Jika ekspresi untuk suatu kolom tidak menggunakan tipe data yang sesuai, konversi tipe otomatis akan dilakukan.

Hanya saat pernyataan INSERT dijalankan di dalam program SPL dan klausa VALUES digunakan, klausa RETURNING INTO { record | variable [, ...] } dapat ditentukan.

Hanya saat pernyataan INSERT dijalankan di dalam program SPL, klausa RETURNING BULK COLLECT INTO collection [, ...] dapat ditentukan. Jika beberapa collection ditentukan dalam klausa BULK COLLECT INTO, setiap collection harus terdiri dari satu bidang skalar. Setiap collection tidak boleh berupa rekaman. Untuk setiap baris yang disisipkan, nilai evaluasi return_expression menjadi elemen dalam collection, dimulai dari elemen pertama. Baris yang sudah ada di dalam collection akan dihapus. Jika set hasil kosong, collection juga akan kosong.

Anda memerlukan hak istimewa INSERT pada tabel untuk menyisipkan data. Jika klausa query digunakan untuk menyisipkan baris dari query, hak istimewa SELECT pada tabel yang digunakan dalam query tersebut juga diperlukan.

Parameter

ParameterDeskripsi
tableNama tabel yang sudah ada. Nama tersebut dapat memuat kualifikasi skema.
dblinkNama tautan database, yang mengidentifikasi database remote. Untuk informasi lebih lanjut tentang tautan database, lihat pernyataan CREATE DATABASE LINK.
columnNama kolom dalam table.
expressionEkspresi atau nilai yang akan ditetapkan ke column.
DEFAULTNilai default dari kolom tersebut.
queryQuery (pernyataan SELECT) yang menyediakan baris-baris yang akan disisipkan. Untuk informasi lebih lanjut, lihat pernyataan SELECT.
return_expressionEkspresi yang dapat mencakup satu atau lebih kolom dalam table. Jika nama kolom dari table ditentukan dalam return_expression, nilai yang diganti untuk kolom saat return_expression dievaluasi ditentukan sebagai berikut:
  • Jika Anda menetapkan nilai dalam pernyataan INSERT ke kolom yang ditentukan dalam return_expression, nilai yang ditetapkan digunakan untuk mengevaluasi return_expression.
  • Jika Anda tidak menetapkan nilai dalam pernyataan INSERT ke kolom yang ditentukan dalam return_expression dan tidak ada nilai default yang diberikan untuk definisi kolom, nilai null digunakan untuk mengevaluasi return_expression.
  • Jika Anda tidak menetapkan nilai dalam pernyataan INSERT ke kolom yang ditentukan dalam return_expression dan nilai default diberikan untuk definisi kolom, nilai default digunakan untuk mengevaluasi return_expression.
recordRekaman yang ingin Anda tetapkan hasil evaluasi dari return_expression. Sebagai contoh, return_expression pertama ditetapkan ke bidang pertama dalam record, dan return_expression kedua ditetapkan ke bidang kedua dalam record. Jumlah bidang dalam rekaman harus sesuai dengan jumlah ekspresi, dan bidang-bidang tersebut harus kompatibel tipe dengan ekspresi yang sesuai.
variableVariabel yang ingin Anda tetapkan hasil evaluasi dari return_expression. Jika Anda menentukan beberapa return_expression dan variable, return_expression pertama ditetapkan ke variable pertama, dan return_expression kedua ditetapkan ke variable kedua. Jumlah variabel yang ditentukan setelah kata kunci INTO harus sesuai dengan jumlah ekspresi yang mengikuti kata kunci RETURNING, dan variabel-variabel tersebut harus kompatibel tipe dengan ekspresi yang sesuai.
collectionKoleksi di mana elemen dibuat dari hasil evaluasi return_expression. Anda dapat menentukan koleksi dengan satu bidang atau koleksi dengan tipe rekaman. Anda juga dapat menentukan beberapa koleksi di mana setiap koleksi terdiri dari satu bidang. Jumlah ekspresi pengembalian harus sesuai dalam jumlah dan urutan dengan jumlah bidang dalam semua koleksi yang ditentukan. Setiap return_expression harus kompatibel tipe dengan bidang collection yang sesuai.
subqueryParameter ini menentukan klausa subquery.

Contoh

Menyisipkan satu baris ke dalam tabel emp:

INSERT INTO emp VALUES (8021,'JOHN','SALESMAN',7698,'22-FEB-07',1250,500,30);

Dalam contoh ini, kolom comm dihilangkan, sehingga nilainya adalah nilai default yaitu null:

INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, deptno)
    VALUES (8022,'PETERS','CLERK',7698,'03-DEC-06',950,30);

Contoh ini menggunakan klausa DEFAULT untuk kolom hiredate dan comm daripada menentukan nilai:

INSERT INTO emp VALUES (8023,'FORD','ANALYST',7566,NULL,3000,NULL,20);

Contoh ini membuat tabel untuk nama departemen, lalu menyisipkan data ke dalam tabel. Nama departemen diperoleh dari kolom dname tabel dept:

CREATE TABLE deptnames (
    deptname        VARCHAR2(14)
);
INSERT INTO deptnames SELECT dname FROM dept;

Gunakan hasil dari select * from table1 sebagai objek dan sisipkan baris (1,1,1) ke dalam objek:

INSERT INTO (SELECT * FROM table1) VALUES (1, '1', 1) ;