mySQL触发器错误1175,1050

时间:2012-10-25 06:13:46

标签: mysql triggers

您好我将所有表从一个数据库导入到另一个数据库但不知何故触发器未导入。使用MySQL 5.6。所以我试图从先前的数据库中复制触发器语句以在当前数据库中创建触发器。 DELIMITER $$

USE `swcms`$$

CREATE 
DEFINER=`swcms`@`localhost` 
TRIGGER `swcms`.`class_lesson_trigger` 
AFTER DELETE ON `swcms`.`swlp4_class` 
FOR EACH ROW 
delete from swlp4_lesson where className in 
(SELECT CONCAT(old.classLv,old.className) AS className FROM swlp4_class);
$$

我在工作台的输出部分得到的错误

  

错误代码:1175。您正在使用安全更新模式,但您尝试过   更新没有使用KEY列的WHERE的表要禁用安全性   模式,切换首选项中的选项 - > SQL编辑器 - >查询编辑器   并重新连接。

我在应用脚本窗口中遇到的错误

SQL Statement:
DROP TRIGGER IF EXISTS swcms.class_lesson_trigger
ERROR: Error when running failback script. Details follow.
ERROR 1050: Table 'swlp4_class' already exists
SQL Statement:
CREATE TABLE `swlp4_class` (
  `classID` int(11) NOT NULL auto_increment,
  `schoolID` int(11) NOT NULL,
  `educationLv` int(11) NOT NULL default '0',
  `classLv` int(11) NOT NULL,
  `className` varchar(10) NOT NULL,
  PRIMARY KEY  (`classID`),
  UNIQUE KEY `classID_UNIQUE` (`classID`),
  KEY `school_class_fk_idx` (`schoolID`),
  CONSTRAINT `school_class_fk` FOREIGN KEY (`schoolID`) REFERENCES `swlp4_school` (`schoolID`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8

第二个错误对我没有任何意义。我没有丢失触发器或表仍然出现此错误。

知道我做错了什么

1 个答案:

答案 0 :(得分:0)

  • 定义条款的问题。它包含旧数据库用户的信息。
  • 建议:
    1. 如果新数据库无效,则忽略定义信息。或者您应该遵循相同的步骤,如
    2. 创建触发器
    3. 导出Sql
    4. 将Sql导入DB New。