PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Поправете „INSERT има повече изрази от целевите колони“ в PostgreSQL

Ако срещнете грешка, която гласи „INSERT има повече изрази от целевите колони ” когато се опитвате да вмъкнете данни в Postgres, това е, защото се опитвате да вмъкнете данни в повече колони, отколкото таблицата всъщност съдържа.

Например, може да се опитвате да вмъкнете четири израза в таблица, която съдържа само три колони.

За да коригирате, премахнете допълнителния/и израз/и от вашия INSERT изявление. С други думи, уверете се, че вмъквате правилния брой колони.

Пример за грешка

Да предположим, че имаме таблица като тази:

<пред>+-------+--------+--------+| дребнав | име на домашен любимец | домашни любимци |+-------+--------+--------+| 1 | Пухкави | Котка || 2 | Tweet | Птица |+-------+--------+--------+

Тази таблица има три колони.

Да предположим, че искаме да вмъкнем още един ред.

Ето как да генерирате грешката:

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

Резултат:

ГРЕШКА:INSERT има повече изрази от целевите колони LINE 1:INSERT INTO Pets VALUES (3, 'Wag', 'Dog', 'Brown'); ^

Тук се опитах да вмъкна четири израза в таблица, която има само три колони.

Решение

Решението е лесно. Премахнете допълнителния израз:

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

Тук премахнах последния израз (Brown ) от VALUES списък. Това доведе до вмъкването на реда без грешка.

Или, за да сте сигурни, че няма да вмъкнете по невнимание данни в грешната колона, можете изрично да посочите всяка колона:

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

След изпълнение на един от горните изрази, таблицата вече изглежда така:

SELECT * FROM Pets; 

Резултат:

<пред>+-------+--------+--------+| дребнав | име на домашен любимец | домашни любимци |+-------+--------+--------+| 1 | Пухкави | Котка || 2 | Tweet | Птица || 3 | Размахване | Куче |+-------+--------+--------+

Успешно вмъкнахме реда в таблицата.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предотвратяване на съседни/припокриващи се записи с EXCLUDE в PostgreSQL

  2. Проверете дали базата данни съществува в PostgreSQL с помощта на shell

  3. Репликация на Londiste с PostgreSQL 9.0

  4. Как да се справим с незадължителна стойност, върната от заявка, използвайки сандъка на postgres?

  5. Как да създадете изглед в PostgreSQL