#1062 - 重复录入' 0'关键' PRIMARY' 7

时间:2017-12-31 06:12:44

标签: mysql sql

获取此错误并且不精明地创建表格和列,其他一些类似的问题和答案也没有帮助。

这是错误:

Error

SQL查询:

INSERT INTO orders_session_info 
(txn_signature , orders_id , payment , payment_title , payment_amount , payment_currency , payment_currency_val , sendto , billto , language , language_id , currency , currency_value , firstname , lastname , content_type , affiliate_id , affiliate_date , affiliate_browser, affiliate_ipaddress , affiliate_clickthroughs_id )
VALUES 
(
'd4208b15558a761c34dc7c79b87275b4', '20167', 'paypal', 'PayPal', '273.56', 'USD', '1.00000000', '140', '140', 'english', '1', 'USD', '1.00000000', 'Pauls', 'Dandzbergs', 'physical', '0', '0000-00-00 00:00:00', '', '', '0'
);

MySQL说:文档

#1062 - Duplicate entry '0' for key 'PRIMARY' 

代码:

-- Table structure for table `orders_session_info`
--

DROP TABLE IF EXISTS orders_session_info;
CREATE TABLE orders_session_info (
  txn_signature int(11) NOT NULL AUTO_INCREMENT,
  orders_id int(11) NOT NULL,
  payment varchar(32) NOT NULL,
  payment_title varchar(32) NOT NULL,  
  payment_amount varchar(32) NOT NULL,
  payment_currency varchar(32) NOT NULL,
  payment_currency_val varchar(32) NOT NULL,
  sendto varchar(32) NOT NULL,
  billto varchar(32) NOT NULL,
  language varchar(32) NOT NULL,
  language_id varchar(32) NOT NULL,
  currency varchar(32) NOT NULL,
  currency_value varchar(32) NOT NULL,
  firstname varchar(32) NOT NULL,
  lastname varchar(128) NOT NULL,
  content_type varchar(128) NOT NULL,
  affiliate_id varchar(128) NOT NULL,
  affiliate_date varchar(128) NOT NULL,
  affiliate_browser varchar(128) NOT NULL,
  affiliate_ipaddress varchar(128) NOT NULL,    
  affiliate_clickthroughs_id varchar(128) NOT NULL,
  PRIMARY KEY (txn_signature),
  KEY txn_signature(orders_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

任何具体的帮助将不胜感激......

--
-- Dumping data for table orders_session_info

1 个答案:

答案 0 :(得分:1)

您的主键字段txn_signatureauto increment字段。这意味着数据库将在您插入新行时自动为其创建唯一值。

因此,您不应在INSERT语句中包含此字段 - 数据库将为您处理。现在它认为你试图覆盖自动功能并手动插入值“d4208b15558a761c34dc7c79b87275b4”。显然,一旦你有多行,这将导致重复的ID,所以不允许这样做。此外,你的字段是一个int,你正试图在其中插入一个字符串,这将永远不会工作。