PostgresSQL - Невозможно вставить значения в таблицу - ОШИБКА: У INSERT больше целевых столбцов, чем выражений - PullRequest
2 голосов
/ 18 января 2020

было много вопросов, связанных с этим топи c, но ни один из найденных мной не смог решить мою проблему.

Я просто пытаюсь запустить файл для создания таблицы в моем база данных "test_scheduler". Таблица создана просто отлично; однако, когда я запускаю файл для заполнения таблицы с логическими значениями ... ничего не происходит, и я получаю

ERROR:  INSERT has more target columns than expressions

Вот файл, который создает таблицу:

DROP TABLE IF EXISTS operation;


CREATE TABLE operation (
  id INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
  monday INTEGER NOT NULL DEFAULT FALSE,
  tuesday BOOLEAN NOT NULL DEFAULT FALSE,
  wednesday BOOLEAN NOT NULL DEFAULT FALSE,
  thursday BOOLEAN NOT NULL DEFAULT FALSE,
  friday BOOLEAN NOT NULL DEFAULT FALSE,
  saturday BOOLEAN NOT NULL DEFAULT FALSE,
  sunday BOOLEAN NOT NULL DEFAULT FALSE
);

Вот исходный файл:

TRUNCATE operation;

INSERT INTO operation
  (monday, tuesday, wednesday, thursday, friday, saturday, sunday)
  VALUES
    (FALSE),
    (FALSE),
    (TRUE),
    (FALSE),
    (FALSE),
    (FALSE),
    (FALSE);

Ранее я добавил созданные и заполненные две таблицы в этой же базе данных. Я вылил этот начальный файл, и я просто не уверен, что делать.

Вот полное утверждение и ошибка:

psql:C:/Users/Eli/Desktop/SQL/seed.operation-hours.sql:11: ERROR:  INSERT has more target columns than expressions
LINE 2:   (monday, tuesday, wednesday, thursday, friday, saturday, s...

У меня есть пробовал разные варианты файлов create и seed, например, я забыл «NOT NULL», «DEFAULT», я установил значения по умолчанию «false», false, «0», et c. Ничто из того, что я делаю в файлах, не имеет значения. Я ценю любую помощь!

1 Ответ

2 голосов
/ 18 января 2020

Ваш код вставляет семь строк с одним значением каждый вместо семи столбцов в одну строку. Синтаксис, который вы хотите:

INSERT INTO operation (monday, tuesday, wednesday, thursday, friday, saturday, sunday)
  VALUES (FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE);
...