从表的列插入数据并存储到另一个表

时间:2016-03-09 17:59:43

标签: php mysql

此列有2个表Sourcedetails

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'

1 个答案:

答案 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部分),因此错误在任何情况下都不会给予重复,并且工作将完成