INSERT INTO rehus.curriculumsfile (fileid, originalfilename, filename, path, curriculumid, userid, companyid) VALUES ((SELECT COALESCE(MAX(fileid), 0) + 1 FROM rehus.curriculumsfile WHERE curriculumid = $1 AND userid = $2 AND companyid = $3), $4, $5, $6, $1, $2, $3)
Я пытаюсь вставить в записи файла базы данных по мере завершения загрузки. Но я получаю дублированные ключевые эры, потому что выбор генерирует один и тот же идентификатор в нескольких параллельных доступах. Как я могу решить эту проблему? И почему это происходит? Это тот же запрос, как операторы insert, так и select должны быть разрешены под тем же «статусом db».Вручную создать идентификатор таблицы PostgreSQL с одновременным доступом
Я знаю, что последовательности или серии должны решить проблему, но они на самом деле не работают для меня.
Возможный дубликат: http://stackoverflow.com/questions/18614303/insert-into-postgres-sql – Claudix
Почему последовательности не работают для вас ... –
У меня есть составные ключи и нужны?! следовать последовательности, подобной (1, 1), (1, 2), (1, 3); (2, 1), (2, 2) и т. Д. –