基于IF EXIST插入数据

时间:2015-12-04 20:19:52

标签: mysql sql database stored-procedures insert

我正在为我的客户构建系统更新功能,客户端拖拽并删除xls表(导出表单SAP),该查询基本上TRUNCATES import_table中的现有“项目数据”并且从xls插入所有项目数据,现在工作正常,但我需要帮助的是编写一个存储过程,从project_number中选择import_table并检查是否{{1}已存在于project_number中,如果它不存在,则按project_tableimport_table插入新项目数据。

到目前为止我所拥有的:

project_number

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您可以使用WHERE子句进行检查:

CREATE DEFINER=`root`@`%` PROCEDURE `update_projects`()
BEGIN
    INSERT INTO `db`.`project_table` (project_table columns...) 
        SELECT import_table columns...
        FROM db.import_table i
        WHERE NOT EXISTS (SELECT 1
                          FROM db.project_table pt
                          WHERE i.project_number = pt.project_number
                         )
END;

如果问题重复project_number s,那么您应该定义一个唯一约束/索引并让数据库验证数据。