sql无法将相同的客户ID插入购物车

时间:2014-03-25 03:53:35

标签: mysql sql auto-increment shopping-cart

我要求方向。 我有一个.sql文件的表 - 客户,产品和购物车。购物车的customerID和productID都自动递增,并且都作为主键。我将记录插入购物车中,以获取特定的customerID,特定的产品ID,数量为1.我将另一条记录插入到同一客户的购物车中。
当尝试导入phpMyAdmin时,我收到一个错误:#1062 - 重复'PRIMARY'的重复输入'0-0' 如何使用相同的customerID向购物车添加多条记录?

CREATE TABLE Shopping_Cart(
  CustID INTEGER UNSIGNED NOT NULL,
  ProdID INTEGER UNSIGNED NOT NULL,
  Quantity INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(CustID, ProdID));

INSERT INTO Shopping_Cart VALUES("BostockG12345A", "DULL12275226", 2);
INSERT INTO Shopping_Cart VALUES("BostockG12345A", "jPET1224108", 1); 

谢谢大家。我回家后,我会将它从整数更改为VARCHAR。我在分配ID之前创建了表。但这引出了另一个问题 对于购物车,我编写了CustID和ProdID,即使它们是Customer表和Product表中的auto_increment。我得到了一点混淆,首先是鸡肉或鸡蛋(auto_increments CustID(和ProdID)或INSERTs CustID(或ProdID)。我怎么知道购物车的auto_increment ID号是什么INSERT如果全部在同一个文件中?我应该查询名称为Bostock的客户的ID以及该特定产品的ID,然后执行INSERT吗?

3 个答案:

答案 0 :(得分:1)

CustID INTEGER UNSIGNED NOT NULL, --> Integer
  ProdID INTEGER UNSIGNED NOT NULL, -->Integer

INSERT INTO Shopping_Cart VALUES("BostockG12345A", "DULL12275226", 2);
INSERT INTO Shopping_Cart VALUES("BostockG12345A", "jPET1224108", 1);

   Wrong May be :  But you are inserting string data in place of integer

答案 1 :(得分:0)

CustIDProdID是数据库中的整数值,您正在插入字符串(" BostockG12345A"," DULL12275226")mysql尝试将其转换为数字。转换结果为0,因此最终插入2条记录,其中CustId = 0且ProdId = 0

答案 2 :(得分:0)

更改CustID和ProdID列的类型。它会工作正常,我试过。因为你的值不是整数类型。