类型实体插入而不同步



我正在使用TypeORM和NestJs来处理现有的MySql数据库。 我必须将记录插入到一个共享表中,该表具有自动递增的主键。 由于该表是共享的,因此我已关闭同步。

当我使用 @PrimaryGeneratedColumn 装饰器设置我的 TypeORM 实体时,我收到一个错误,指出该列"没有默认值"。 如果我将装饰器更改为@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();
}

这是我收到的错误:

[Nest] 26248 - 2020/01/22 下午2:18:43 [异常处理程序] ER_NO_DEFAULT_FOR_FIELD:字段"集成项 ID"没有默认值 +18075ms 查询失败错误: ER_NO_DEFAULT_FOR_FIELD: 字段"集成项 ID"没有默认值

问题可能与列名有关。

integrationItemId : number;

IntegrationItemID

我将数据库配置切换到其他数据库,应用程序工作正常。 我将应用程序配置为使用 MySql 的本地实例,该实例未正确设置。 不过,我不知道确切的原因。

更新

从那以后,我了解到我的本地数据库与服务器实例不匹配。设置时,主键列未设置为自动递增。*SMH*

相关内容

  • 没有找到相关文章

最新更新