我正在尝试重新编写osCommerce的旧实现,并将旧数据库中的数据重新引入到新数据库中。我使用phpMyAdmin从旧表中导出数据。当我尝试将它们导入新数据库时,我遇到了一系列错误。为了清楚起见,我在这里将问题简化为单个INSERT语句。
陈述是:
INSERT INTO `address_book` (`address_book_id`,
`customers_id`,
`entry_gender`,
`entry_company`,
`entry_firstname`,
`entry_lastname`,
`entry_street_address`,
`entry_suburb`,
`entry_postcode`,
`entry_city`,
`entry_state`,
`entry_country_id`,
`entry_zone_id`)
VALUES (1, 1, 'm', '', 'Mary', 'Smith',
'1234 Pleasant Court', '', '67890',
'Hometown', 'state', 123, 0);
当我尝试通过phpMyAdmin从文件导入它时出现错误:“#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1.”
如果我单击“编辑”按钮并重新提交查询,则会收到另一个错误:“#1062 - Duplicate entry '1' for key 'PRIMARY'.”
address_book_id字段是此表中的主键,是一个自动增量字段。
仍然在编辑屏幕中,如果我将address_book_id值更改为NULL并重新提交,则接受查询。
认为我已解决问题,我将导入文件中的address_book_id值更改为NULL并再次尝试导入。再次,我得到#1064错误。我立即点击编辑。我没有对声明进行任何修改,但是没有修改就提交了。这一次,声明被接受了。
处理下载数据中的address_book_id值似乎存在问题。我从旧数据库的众多表中获得了数百个索引值。显然,我不想更改索引值并一次提交一个。
我正在使用phpMyAdmin 3.5.1。知道发生了什么事吗?
答案 0 :(得分:0)
没有$(function () {
function adjeustCoords() {
var image=$('img'); //change that to your image selector
var originalWidth=image[0].naturalWidth;
var currentWidth=image.width();
var ratio=currentWidth/originalWidth;
$("map area").each(function(){
//change that to your area selector
var coords=$(this).attr('data-original-coords').split(',');
coords = coords.map(function (x) {
return Math.round(x*ratio);
//i don't know if all browsers can accept floating point so i round the result
});
$(this).attr('coords',coords.join());
});
}
adjeustCoords();
$(window).resize(function(){
adjeustCoords();
});
});
的情况下执行此操作。显然,一个是主键,你不能简单地从另一个表复制。应自动分配新ID。
答案 1 :(得分:0)
在玩了一段时间之后,我认为最好的方法是删除然后重新创建表格。我在两个表上尝试了这个,然后能够上传我的数据,包括id字段,而不会抛出任何错误。表似乎工作正常。