Я использую TypeORM и Nest Js для работы с существующей базой данных MySql. Существует общая таблица, в которую я должен вставить записи, в которой есть автоинкрементный первичный ключ. Поскольку таблица является общей, у меня отключена синхронизация.
Когда я настраиваю свою сущность TypeORM с помощью декоратора @PrimaryGeneratedColumn, я получаю сообщение об ошибке, в котором говорится, что столбец «не имеет значения по умолчанию». Если я изменю декоратор на @Column, то получаю сообщение об ошибке, касающееся отсутствия первичного ключа.
Может кто-нибудь сказать мне, как я должен настроить свою сущность TypeORM, чтобы я мог вставить запись в таблицу с автоматическим инкрементный столбец, где синхронизация отключена?
ОБНОВЛЕНИЕ
Вот выдержка из таблицы MySql DDL:
CREATE TABLE IF NOT EXISTS tIntegrationItem (
IntegrationItemID mediumint AUTO_INCREMENT NOT NULL,
Description varchar(200) NOT NULL,
CreatedDateTime dateTime NOT NULL,
PRIMARY KEY (IntegrationItemID)
) ENGINE=InnoDB;
Вот выдержка из сущности:
@Entity({ name: "tIntegrationItem" })
export class IntegrationItem {
@PrimaryGeneratedColumn()
integrationItemId : number;
@Column()
description : string;
@Column()
createdDateTime : Date = new Date();
}
Вот ошибка, которую я получаю:
[Гнездо] 26248 - 22.01.2020, 14:18:43 [ExceptionsHandler] ER_NO_DEFAULT_FOR_FIELD: Поле 'IntegrationItemID' не имеет значения по умолчанию + 18075 мс QueryFailedError: ER_NO_DEFAULT_FOR_FIELD: Поле 'IntegrationItemID' не имеет значения по умолчанию