Как вставить запись с идентификатором (автоинкремент) PostgREST?

У меня есть функция

        axios.post('http://localhost:3000/unitsmeasure', {
            id: 20,
            name: 'name'
        })
        .then(function (response) {
            console.log(response);
        })
        .catch(function (error) {
            console.log(error);
        });

Он вставляет запись в таблицу. Это работает.

Но когда я не указываю идентификатор, он не работает. id (серийный первичный ключ).

        axios.post('http://localhost:3000/unitsmeasure', {
            name: 'name'
        })
        .then(function (response) {
            console.log(response);
        })
        .catch(function (error) {
            console.log(error);
        });

Это не работает

Таблица SQL:

CREATE TABLE "unitsmeasure" (
  "id" serial PRIMARY KEY,
  "name" varchar(100)
)

SQL-дамп:

CREATE TABLE "unitsmeasure" (
  "id" int8 NOT NULL DEFAULT nextval('"Request".unitsmeasure_id_seq'::regclass),
  "name" varchar(100) COLLATE "pg_catalog"."default"
);
ALTER TABLE "unitsmeasure" OWNER TO "postgres";

ALTER TABLE "unitsmeasure" ADD CONSTRAINT "unitsmeasure_pkey" PRIMARY KEY ("id");

1 ответ

Наиболее вероятный виновник - не предоставление разрешений на использование последовательности.

Попробуй это:

GRANT USAGE ON SEQUENCE unitsmeasure_id_seq TO user_name;

Вставляющему пользователю необходим доступ к последовательности, чтобы вставить значение из последовательности.

Другие вопросы по тегам