PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Perbaiki "INSERT memiliki lebih banyak ekspresi daripada kolom target" di PostgreSQL

Jika Anda menemukan kesalahan yang berbunyi “INSERT memiliki lebih banyak ekspresi daripada kolom target ” saat mencoba menyisipkan data di Postgres, itu karena Anda mencoba memasukkan data ke dalam lebih banyak kolom daripada yang sebenarnya ada di tabel.

Misalnya, Anda mungkin mencoba menyisipkan empat ekspresi ke dalam tabel yang hanya berisi tiga kolom.

Untuk memperbaikinya, hapus ekspresi ekstra dari INSERT . Anda penyataan. Dengan kata lain, pastikan Anda memasukkan jumlah kolom yang benar.

Contoh Kesalahan

Misalkan kita memiliki tabel seperti ini:

+-------+---------+---------+
| petid | petname | pettype |
+-------+---------+---------+
|     1 | Fluffy  | Cat     |
|     2 | Tweet   | Bird    |
+-------+---------+---------+

Tabel itu memiliki tiga kolom.

Sekarang, misalkan kita ingin menyisipkan baris lain.

Berikut cara menghasilkan kesalahan:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog', 'Brown' );

Hasil:

ERROR:  INSERT has more expressions than target columns
LINE 1: INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog', 'Brown' );
                                                   ^

Di sini, saya mencoba memasukkan empat ekspresi ke dalam tabel yang hanya memiliki tiga kolom.

Solusi

Solusinya mudah. Hapus ekspresi ekstra:

INSERT INTO Pets VALUES ( 3, 'Wag', 'Dog' );

Di sini, saya menghapus ekspresi terakhir (Brown ) dari VALUES daftar. Ini mengakibatkan baris dimasukkan tanpa kesalahan.

Atau, untuk memastikan Anda tidak secara tidak sengaja memasukkan data ke dalam kolom yang salah, Anda dapat secara eksplisit menyatakan setiap kolom:

INSERT INTO Pets ( PetId, PetName, PetType ) 
VALUES ( 1, 'Wag', 'Dog' );

Setelah menjalankan salah satu pernyataan di atas, tabel sekarang terlihat seperti ini:

SELECT * FROM Pets;

Hasil:

+-------+---------+---------+
| petid | petname | pettype |
+-------+---------+---------+
|     1 | Fluffy  | Cat     |
|     2 | Tweet   | Bird    |
|     3 | Wag     | Dog     |
+-------+---------+---------+

Kami telah berhasil memasukkan baris ke dalam tabel.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengelompokkan berdasarkan Bulan di PostgreSQL

  2. Gabungkan satu kolom dalam kueri dengan banyak kolom

  3. 3 Cara Mendaftar semua Prosedur Tersimpan dalam Database PostgreSQL

  4. Apakah PostgreSQL mendukung kompresi tabel (fragmen) transparan?

  5. Heroku psql:FATAL:slot koneksi yang tersisa dicadangkan untuk koneksi superuser non-replikasi