我可以在MySQL中填充一个表而不出现重复的条目吗?

问题描述 投票:1回答:2

我有一个数据库。但是每当我试图从购物页面向购物车表中添加商品时,我发现如果经常点击该商品的添加按钮,同一商品就会被多次添加到表中。有没有一种方法,每当用户点击某个商品的添加按钮时,如果该商品已经被添加到购物车表中,那么就不能再添加。

mysql database-design duplicates unique-key
2个回答
1
投票

让你的主键(cart_id,product_id)。如果用户试图将现有的产品添加到购物车中,然后递增数量。

create table cart_items (
  cart_id int,
  product_id int,
  quantity int default 1,
  primary key (cart_id, product_id)
);

insert into cart_items (cart_id, product_id) values
(1,1)
on duplicate key update quantity = quantity + 1;

insert into cart_items (cart_id, product_id) values
(1,1)
on duplicate key update quantity = quantity + 1;

http:/sqlfiddle.com#!9da1ac1


0
投票

你要添加产品的表的结构是什么?你可以在(userId,productId)列组合上设置一个唯一索引。这将防止同一产品被添加多次。你可能想查看 插入......重复键更新时 句法,但。

© www.soinside.com 2019 - 2024. All rights reserved.