使用BEFORE INSERT触发器导入sql文件时出现重复键错误

时间:2015-03-23 03:32:31

标签: mysql

在我的.sql文件中有一行如下:

SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER `thasil2bi` BEFORE INSERT ON `t_hasil2` FOR EACH ROW BEGIN
set new.c_kode=concat(new.c_kodejudul,new.c_bulan,new.c_tahun);
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;

每次我尝试导入此.sql文件时都会出现错误

#1062 - Duplicate entry 'A1.1-1-2015' for key 'PRIMARY' 

当我查看文件并搜索c_kodejudul = 'A1.1'c_bulan=1以及c_tahun=2015的组合时。只有一行有这些组合,仅此而已。我的sql文件会发生什么?

1 个答案:

答案 0 :(得分:0)

请搜索' A1.1-1-2015'在你的sql文件中

  1. 如果找到两次,则删除从SQL文件中插入重复的SQL命令。
  2. 如果找到一次,有时你可能有不完整的sql执行,所以去数据库删除所有表并重新执行sql文件