Заношу данные в БД при помощи следующего кода:
try {
await knex.insert(fields[0]).into(UniversitySpecialties_TABLE).returning(‘*’)
} catch (error) {
console.error(error);
throw new DataBaseError(errors.get('DATA_BASE_ERROR'));
}
Фрагмент файла-миграции:
.createTable('universitySpecialties', (table) => {
table.increments('id').primary();
table.integer('specialtyID').notNullable();
table.integer('universityID').notNullable();
table.integer('studentCount');
table.string('educationProfileName', 5000).defaultTo(null);
table.string('funding', 1000).defaultTo(null);
table.string('educationLevel', 1000).defaultTo(null);
table.string('educationForm', 1000).defaultTo(null);
table.string('universitySpecialtySite', 10000).defaultTo(null);
table.timestamps(true, true);
})
Пример fields[0]:
fields[0]={
specialtyID: 11,
universityID: 14,
studentCount: 35,
educationProfileName: 'Муниципальное управление',
funding: ‘budget',
educationForm: ‘Очно',
universitySpecialtySite: ‘https://www.ru',
}
И в итоге вот такая ошибка:
Ошибка при выполнении запроса на вставку error: insert into "universitySpecialties" ("educationForm", "educationProfileName", "funding", "specialtyID", "studentCount", "universityID", "universitySpecialtySite") values ($1, $2, $3, $4, $5, $6, $7) - duplicate key value violates unique constraint "universitySpecialties_pkey"
at Parser.parseErrorMessage (/Users/andrejbulatov/Projects/Smart Entrance/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/Users/andrejbulatov/Projects/Smart Entrance/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/Users/andrejbulatov/Projects/Smart Entrance/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket.<anonymous> (/Users/andrejbulatov/Projects/Smart Entrance/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:527:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
length: 230,
severity: 'ERROR',
code: '23505',
detail: 'Key (id)=(367) already exists.',
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: 'public',
table: 'universitySpecialties',
column: undefined,
dataType: undefined,
constraint: 'universitySpecialties_pkey',
file: 'nbtinsert.c',
line: '663',
routine: '_bt_check_unique'
}
При всём при этом у меня установлена автоинкрементация id, и, по идее, все строки должны вставляться в конец. Но не вставляются