【问题标题】:Why I cant duplicate data to this table in SQL? [duplicate]为什么我不能在 SQL 中将数据复制到该表中? [复制]
【发布时间】:2020-07-14 11:58:01
【问题描述】:

我有一个名为“rma_device_list”的表,它是一个关系表,因此没有主键也没有唯一键。它应该允许我插入重复的数据,但它没有。它说我不能插入重复的数据。

这是我桌子的screenshot

这是我正在执行的插入查询:INSERT INTO rma_device_list(rma_id, device_id, dev_comment, manuf_comment) VALUES (0,1298,"sdfsdf","sdfsdfdsfds")

【问题讨论】:

  • 单引号与双引号
  • 您的屏幕截图看起来确实像您的表格有一个唯一的键。
  • 相反,看起来表格有一个复合PK。错误很明显 - 组合键已经存在。 rma_id0 相当可疑 - 您的代码是否使用 0 作为默认 ID 值?这意味着“丢失的”ID 值与具体的0 一起存储。如果您尝试使用相同的 device_id 存储两个这样的行,您将收到重复错误
  • 看起来您在 rma_id, device_id 上有唯一索引
  • @biciklla 你没有 - 你的代码和逻辑有一个需要修复的流程。 Unique 约束不是问题,存储 0 而不是 NULL,或者尝试存储重复键是真正的问题

标签: sql sql-insert


【解决方案1】:

根据您的屏幕截图,rma_iddevice_id 的组合是独一无二的。因此,您不能将重复的对插入表中。这就是错误消息告诉您的内容。

事实上,列也没有NULL 值,所以你不妨将这对声明为主键。

【讨论】:

  • 我怎样才能真正撤消两者的唯一键?
  • 您可以删除唯一约束或索引。您还可以重新创建表格以获得您真正想要的格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2014-09-04
相关资源
最近更新 更多