处理数据库相关的东西。主要是当客户端以excel表的形式向您发送数据并且在一些excel操作之后将数据推送到数据库表时完成。我也做了很多次。
这种方法面临的一个非常普遍的问题是,它有时会导致重复的行,因为发送的数据主要来自人力资源和财务等部门,人们并不了解数据规范化技术[: - )]。 / p>
我将使用Employee表,其中列名是id,name,department和email。
以下是用于生成测试数据的SQL脚本。
创建架构TestDB;
CREATE TABLE EMPLOYEE
(
ID INT,
NAME Varchar(100),
DEPARTMENT INT,
EMAIL Varchar(100)
);
INSERT INTO EMPLOYEE VALUES (1,'Anish',101,'anish@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (2,'Lokesh',102,'lokesh@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (3,'Rakesh',103,'rakesh@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (4,'Yogesh',104,'yogesh@howtodoinjava.com');
- 这些是重复的行
INSERT INTO EMPLOYEE VALUES (5,'Anish',101,'anish@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (6,'Lokesh',102,'lokesh@howtodoinjava.com');
的解决方案: 的
DELETE e1 FROM EMPLOYEE e1, EMPLOYEE e2 WHERE e1.name = e2.name AND e1.id > e2.id;
答案 0 :(得分:0)
使用过滤器删除Excel工作表中的所有重复记录,然后将这些记录插入到您的数据库中
对唯一
使用distinct关键字How to insert Distinct Records from Table A to Table B (both tables have same structure) 检查这个堆栈溢出链接
答案 1 :(得分:0)
在名称字段上添加唯一约束并使用以下查询 插入员工价值观 请参阅"INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
答案 2 :(得分:0)
在插入数据库之前,您始终可以确保该记录已存在与否,在您的情况下,您可以对其唯一键具有条件,这对于每个员工都是不同的。此外,您可以将单个列作为唯一键或使用多个列唯一标识记录的复合键。