【问题标题】:Insert repeated values without changing the primary key assigned to first non repeated value插入重复值而不更改分配给第一个非重复值的主键
【发布时间】:2021-06-11 08:35:43
【问题描述】:

我刚开始学习 MySQL,但遇到了一个问题。 我有一个包含字段的表格:

CREATE table clientele(
    client_id mediumint(5) unsigned auto_increment,
    clientname varchar(25),
    product_id mediumint(5),
    orderqty int(10),
    PRIMARY KEY (client_id,product_id)
    )

当我插入值时,client_id 将开始分配给每个 clientname 字段。如果我在插入过程中重复任何客户端名称,比如它有其他不同的字段值(product_id/orderqty),它将被分配一个新的客户端 ID。如果同一个客户端有多个条目,我如何为单个 client_name 保留单个 client_id

【问题讨论】:

  • 如果你是新人,奇怪的是整数声明会有参数。考虑升级到最新版本
  • 而且您通常不会将“product_id”存储在名为“clientele”的表中。规范化你的架构

标签: mysql sql-insert primary-key


【解决方案1】:

您可以改进表结构。我建议使用下表来完成您的任务:

1. Table: ClientDetails
      columns: clientid, clientname (clientid primary auto increment)

2. Table: Products
        columns: productid, productname ( productid primary key auto increment)

3. Table : ClientOrders
       columns: orderid, productid, clientid, orderQuantity 
( here, orderid is primary key auto-increment and productid clientid will be foreign keys).

现在您可以根据需要使用连接的概念来获取和使用您的数据。

演示条目:

客户详情:

身份证,姓名

  1. 江户

产品

身份证,姓名

  1. 笔记本电脑
  2. 移动

客户订单

orderid、productid、clientid、orderQuantity

  1. 1,1,3
  2. 2,1,2

在这里,jhon doe 购买了 3 台笔记本电脑和 2 台手机。

【讨论】:

    【解决方案2】:

    你使用两个主键你必须使用一个主你有另一个表产品所以(product_id)是产品表的主键和表客户的 fofign 键

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 2019-05-23
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 2014-02-04
      相关资源
      最近更新 更多