我有2个表格,Source
并details
带有此列:
Source id, item_name, items_download
id
是主键。
details
名称,下载名称and ...
是主键。
我想从“源”表中获取数据(实时)并放入details
表中。这是我的代码:
$get= "INSERT INTO `details` (`name`, `download`) SELECT `Source`.`item_name`,`Source`.`items_download` FROM `Source`"
上面的代码有效,但仅在第一次插入数据时有效,当我刷新页面时出现此错误:
Duplicate entry 'Test1' for key 'PRIMARY'
按照要求检查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部分),因此在任何情况下都不会给出重复错误,并且工作将会完成
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句