如果我的数据库包含一些 以前的记录,如何在将新记录从我的xml文件(包含400条记录)插入数据库之前查询每个数据库行 防止重复插入 每个xml文件加载或读取 会话。 以下是Php&只读取并上传整个记录的mysql代码。
<?php
$xml=simplexml_load_file("d:\salarydepartment
\salary.xml");
$status=count($xml);
foreach ( $xml as $sal)
{
$name=$sal->name;
$sex=$sal->sex;
$state=$sal->state;
$country=$sal->country;
$result=mysql_query
("insert into salary
(name,sex,state,country ) values
($name,$sex,$state,$country)",$con)
echo $status." "." Salary Records
successfully stored ! ";
}
?>
答案 0 :(得分:0)
这是您的插入查询:
INSERT INTO salary (name,sex,state,country) VALUES (?,?,?,?)
我将假设您的表具有以下架构
salary (name, sex, state, country)
您不希望重复记录。因此,您必须有一些检查记录是否已插入的方法,这意味着一列(或其组合)必须是唯一的。我的猜测是你的xml文件每unique identifiers
个不包含任何employee
。
然后我们应该考虑在表中添加一个约束来收集足够的信息,以便碰撞的数量很少。
ALTER TABLE salary ADD UNIQUE KEY (name,sex,state,country)
//This sql statement is intended for MySQL version 5.1 please check your's
有了这个限制,唯一允许的重复是同一国家和州,同性和同名的人。
现在,这不是一个好的解决方案,所以我提出了一个更好的解决方案
好的,现在它很简单,但很乏味
ALTER TABLE salary ADD COLUMN...
ALTER TABLE salary ADD PRIMARY KEY...
该表现已针对快速搜索进行了优化