【问题标题】:Insert multiple rows with same primary key in sql using php [closed]使用php在sql中插入具有相同主键的多行[关闭]
【发布时间】:2013-11-29 14:32:28
【问题描述】:

想要插入多条具有相同主记录的记录。 我尝试插入具有相同主键的多条记录,但 sql 给出错误“重复主键”。 是否可以使用 id 或主键插入多行。?

【问题讨论】:

  • 重复的主键是不合理的。主键必须是唯一的,否则它们不是主键。

标签: php mysql


【解决方案1】:

主键是唯一的

http://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html

你可以有一个复合主键

CREATE TABLE track(
  album CHAR(10) NOT NULL,
  dsk INTEGER NOT NULL,
  posn INTEGER NOT NULL,
  song VARCHAR(255),
  PRIMARY KEY (album, dsk, posn)
)

当您希望防止表中多个数据库字段之间出现重复数据时,复合唯一键非常有用。

http://www.alphadevx.com/a/382-Adding-a-composite-unique-key-to-an-existing-MySQL-table

【讨论】:

    【解决方案2】:

    主键的整个想法是为每一行提供一个唯一的标识符,所以你不能这样做。但是,如果您想要一种对行进行分组的方式,您可以向表中添加一个组列,或者为分组创建一个表。例如 group_members 并包含两列,“group_id”和“row_id”。

    【讨论】:

      【解决方案3】:

      主键的目的是它是唯一的,不能重复。

      http://www.w3schools.com/sql/sql_primarykey.asp

      【讨论】:

        【解决方案4】:

        主键应该是唯一的,这就是 MySQL 向您抛出该错误的原因。

        阅读更多关于主键的信息

        SQL primary key

        【讨论】:

        • 我知道主键是唯一的,但我想针对同一个 id 插入多行。该怎么做?
        • 你想在哪里插入它们?在不同的表中?您只想要与该主 ID 相关的子项?
        • 在同一张表中。是的,有不同的产品,每种产品都有自己的数量和重量。我想插入所有最先的一个 id。
        • 您应该编辑您的问题并添加当前表的 ER 图,因为您不能在同一张表上复制 PK。您应该使用外键和关系。
        猜你喜欢
        • 2019-05-25
        • 2014-10-16
        • 2016-02-08
        • 1970-01-01
        • 2014-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        相关资源
        最近更新 更多