我正在编写一个脚本,该脚本应该生成一个要导入到WordPress数据库的SQL文件。但是生成的脚本在导入时(使用PHPMyAdmin)不起作用。它说有一个重复的键" 0"对于主要领域。但是,当我复制并粘贴SQL文件的内容时,一切正常,数据插入正确。我刚刚使用ID字段的随机值进行了测试,并且在导入文件时它可以正常工作。所以它似乎是"自动增量"导入脚本时,以某种方式不考虑属性。知道是什么导致了这个吗?
以下是一些例子:
通常生成的查询会产生上述错误:
INSERT INTO `wp_posts` VALUES('','',NOW(),NOW(),'','Product 1','','','','','','','','','','','','','','','product','',0,479), ('','',NOW(),NOW(),'','Product 2','','','','','','','','','','','','','','','product','',0,48), ('','',NOW(),NOW(),'','Product 3','','','','','','','','','','','','','','','product','',0,517);
ID字段中带有随机值的查询:
INSERT INTO `wp_posts` VALUES('1599','',NOW(),NOW(),'','Product 1','','','','','','','','','','','','','','','product','',0,479), ('1021','',NOW(),NOW(),'','Product 2','','','','','','','','','','','','','','','product','',0,489), ('4599','',NOW(),NOW(),'','Product 3','','','','','','','','','','','','','','','product','',0,517);
最后一个例子很好用。第一个仅在我在PHPMyAdmin中复制并粘贴代码时才有效。
答案 0 :(得分:1)
生成一个脚本,列出列和值跳过ID列,但为所有其他值提供值,这将强制数据库引擎生成这些ID。我认为发生在你身上的是因为提供了值,但是没有数字,它被转换为0然后下一个也被转换为0违反PK约束。下面是我通常如何将虚拟数据填充到数据库中(ID字段将首先列出,但会被跳过)
INSERT INTO user_data
(`user_id`,`data_code`,`data_type`,`language`,`user_agent`,`user_ip`,`created_date`,`created_date_ts`) VALUES (185143,'FF','w','fr','user agent','0.0.0.0','2014-08-06 16:59:56',1407344396);