Mysql 插入重复值,而不更改分配给第一个非重复值的主键
我刚开始学习MySQL,遇到了一个问题。 我有一个带有字段的表:Mysql 插入重复值,而不更改分配给第一个非重复值的主键,mysql,sql-insert,primary-key,Mysql,Sql Insert,Primary Key,我刚开始学习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) ) 当我插入值时,客户端id将开始分
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)
)
当我插入值时,客户端id将开始分配给every clientname字段。如果我在插入过程中重复任何clientname,假设它有其他不同的字段值(product\u id/orderqty),它将被分配一个新的客户端id。如何为单个客户端名称保留一个客户端id,如果同一客户端有多个条目,则可以改进表结构。我建议使用以下表格来完成您的任务:
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).
现在,您可以使用连接的概念来获取数据并根据需要处理数据
演示条目:
客户详情:
身份证,姓名
在这里,jhon doe购买了3台笔记本电脑和2台手机。您使用两个主键,您必须使用一个主键,您有另一个表产品,因此(product_id)是products表的主键,而fofign键是表客户的主键。如果您是新开始的,整数声明会有参数,这很奇怪。考虑升级到最新版本,您通常不会在“clitelele”表中存储“产品ID”。规范化您的模式