我不熟练使用phpmyadmin,所以请保持温和。
我过去转移了wordpress网站,但他们有小型数据库。我现在已经将一个新的客户端站点移动到我的主机,它运行时出现此错误:
INSERT INTO `wp_options` VALUES ( 81057,
'_wc_session_6f1ee0a5a9d89e47f7941c9e3b3e1fed',
'a:20:{s:4:"cart";s:309:"a:1:{s:32:"7b1ce3d73b70f1a7246e7b76a35fb552";a:9:{s:10:"product_id";i:2103;s:12:"variation_id";s:0:"";s:9:"variation";s:0:"";s:8:"quantity";i:1;s:10:"line_total";d:23;s:8:"line_tax";i:0;s:13:"line_subtotal";d:23;s:17:"line_subtotal_tax";i:0;s:13:"line_tax_data";a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}}}";s:15:"applied_coupons";s:6:"a:0:{}";s:23:"coupon_discount_amounts";s:6:"a:0:{}";s:19:"cart_contents_total";d:23;s:20:"cart_contents_weight";i:0;s:19:"cart_contents_count";i:1;s:17:"cart_contents_tax";i:0;s:5:"total";i:0;s:8:"subtotal";d:23;s:15:"subtotal_ex_tax";d:23;s:9:"tax_total";i:0;s:5:"taxes";s:6:"a:0:{}";s:14:"shipping_taxes";s:6:"a:0:{}";s:13:"discount_cart";i:0;s:14:"discount_total";i:0;s:14:"shipping_total";i:0;s:18:"shipping_tax_total";i:0;s:9:"fee_total";i:0;s:4:"fees";s:6:"a:0:{}";s:10:"wc_notices";N;}',
no' ) ;`
#1062 - Duplicate entry '81057' for key 'PRIMARY'
我真的不知道这意味着什么以及如何改变它。我知道有一个重复的条目,它与主键有关 - 它在option_id上设置。
我不知道为什么它不会只是将条目添加到数据库中并自动递增它们 - 它设置为什么?另外,我如何解决问题并添加数据库?
请帮忙!
答案 0 :(得分:0)
AUTO_INCREMENT
是默认值。如果您为字段指定了值,则会使用它。
您可以省略insert语句中的值或使用NULL。
答案 1 :(得分:0)
由于您只是尝试将所有记录复制到新数据库,因此源数据库中的表看起来有些不一致。
检查源表中是否存在多个具有相同option_id
的记录,是否有一些尝试解决它们,然后再次尝试导入。
据我了解,您正在尝试手动传输整个数据库,在这种情况下AUTO_INCREMENT
只是不会工作,因为您将破坏模型实体之间的关系。
答案 2 :(得分:0)
我看到它的方式,你有两种选择。
省略主键值并允许mysql创建一个新行并自动增加它。当然,这需要您指定列。
INSERT INTO `wp_options`(column2, column3, etc)
VALUES('_wc_session_6f1ee0a5a9d89e47f7941c9e3b3e1fed', ...);
请注意,我遗漏了主键
如果需要将数据添加到该特定行,请改为UPDATE
。
UPDATE wp_options SET column2='_wc_session_6f1ee0a5a9d89e47f7941c9e3b3e1fed',
column3='something else', ...
WHERE column1=81057