【发布时间】:2021-09-24 10:01:49
【问题描述】:
我正在使用 Nestjs、MySQL 和 Typeorm 为电子邮件制作表格。我的 char 类型主键长度为 39,并放置了一个由 UUID 连接组成的唯一字符串,其中包含一些额外的字符串。 这是我在名为“电子邮件”的 Nestjs 实体文件中使用 Typeorm 创建主键的方法。其中没有@PrimaryColumn 或@PrimaryGeneratedColumn。
@Column({
primary: true,
type: 'char',
length: 39,
})
id: string;
表中有一些数据。在我将长度从 39 更改为 45 并运行服务器后,TypeOrmModule 发生错误。我没有尝试保存任何东西。奇怪的是,我在通过谷歌搜索插入数据时看到了类似的错误。
QueryFailedError: Duplicate entry '' for key 'email.PRIMARY'
即使我将长度重新设置为 39,仍然会发生错误。我发现运行服务器的唯一方法是删除表并创建一个新表。
我有 2 个关于此错误的问题。
- 有没有办法改变主键的长度,保留表中的数据,运行服务端?
- '' - 错误语句中的空字符串 - 如何影响主键的唯一性?
【问题讨论】:
-
你的 Typeorm 配置对象中是否将
synchronize设置为true? -
@hamidsajjadi 是的,我有