Как вставить запись с идентификатором (автоинкремент) 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;
Вставляющему пользователю необходим доступ к последовательности, чтобы вставить значение из последовательности.