首页 文章

mySQL触发器错误1175,1050

提问于
浏览
0

嗨我将所有表从一个数据库导入到另一个数据库,但不知何故触发器没有导入 . 使用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
    • 定义条款的问题 . 它包含旧数据库用户的信息 .

    • 建议:

    • 如果新数据库无效,则忽略定义信息 . 或者你应该按照相同的步骤

    • 创建触发器

    • 导出Sql

    • 将Sql导入到DB新建 .

相关问题