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

标签 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 文件发生了什么?

最佳答案

请在您的 sql 文件中搜索“A1.1-1-2015”

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

关于mysql - 使用 BEFORE INSERT 触发器导入 sql 文件时出现重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29202875/

相关文章:

mysql - 仅当记录存在于 Rails 中时,如何删除它?

mysql - 在 CASE WHEN 语句中进行子选择时,子查询返回多于 1 行

mysql - 如何根据可用性从两个表之一查询数据

php - 从 MySQL 获取多行输出

mysql - 运行多线程代码规范时锁定等待超时

javascript - 自动刷新表 PHP JavaScript/jQuery

c# - 如何构造一个正确的MySQL连接串?

php - 将两个不同的查询合并为一个

c++ - 具有多个 MySQL 源代码文件的 GDB

mysql - mySQL 中的非法混合排序规则