此列有2个表Source
和details
:
Source id, item_name, items_download
id
是主键。
details
名称,下载and ...
名称`是主键。
我想从Source表中获取数据(实时)并放入details
表。这是我的代码:
$get= "INSERT INTO `details` (`name`, `download`) SELECT `Source`.`item_name`,`Source`.`items_download` FROM `Source`"
以上代码有效,但只是第一次插入数据,当我刷新页面时出现此错误:
Duplicate entry 'Test1' for key 'PRIMARY'
答案 0 :(得分:0)
当要求检查UPDATE时,如果您想知道数据库表是否已导入或更新,请首先运行此SCRIPT:
SELECT
COUNT(*) AS countOfDetails
FROM
details
在PHP中:
$messageString = "";
// assign the countOfDetails from the Query to a PHP variable $myCount
if($myCount==0){
$messageString = "Database Imported Successfully!";
}
else{
$messageString = "Database Updated Successfully!";
}
获取要以字符串形式显示的消息。
您可以运行此SCRIPT来更新/导入数据库表:
INSERT INTO details (name, download)
SELECT item_name, items_download
FROM Source
WHERE NOT EXISTS
( SELECT name, download FROM details
WHERE name IN (
SELECT item_name FROM Source
)
)
运行后,在任意位置回显$messageString
。
注意:这将插入详细信息表中不存在的行(并且不会发出错误,如果已经存在则会跳过INSERT部分),因此错误在任何情况下都不会给予重复,并且工作将完成