我正在使用 TypeORM 和 NestJs 来处理现有的 MySql 数据库。有一个共享表,我必须向其中插入记录,该表具有自动递增主键。由于该表是共享的,因此我已关闭同步。
当我使用 @PrimaryGenerateColumn 装饰器设置 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 - 01/22/2020, 2:18:43 PM [ExceptionsHandler] ER_NO_DEFAULT_FOR_FIELD: Field 'IntegrationItemID' doesn't have a default value +18075ms QueryFailedError: ER_NO_DEFAULT_FOR_FIELD: Field 'IntegrationItemID' doesn't have a default value
最佳答案
问题可能与列名相关。
integrationItemId:数字;
IntegrationItemID
关于mysql - Typeorm 实体插入而不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59826756/