获取此错误并且不精明地创建表格和列,其他一些类似的问题和答案也没有帮助。
这是错误:
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
答案 0 :(得分:1)
您的主键字段txn_signature
是auto increment
字段。这意味着数据库将在您插入新行时自动为其创建唯一值。
因此,您不应在INSERT语句中包含此字段 - 数据库将为您处理。现在它认为你试图覆盖自动功能并手动插入值“d4208b15558a761c34dc7c79b87275b4”。显然,一旦你有多行,这将导致重复的ID,所以不允许这样做。此外,你的字段是一个int,你正试图在其中插入一个字符串,这将永远不会工作。