0

こんにちは、あるデータベースから別のデータベースにすべてのテーブルをインポートしていますが、何らかの理由でトリガーがインポートされません。MySQL 5.6 を使用しています。そのため、以前のデータベースからトリガーステートメントをコピーして、現在のデータベースにトリガーを作成しようとしています。区切り記号 $$

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

2番目のエラーは私には意味がありません。トリガーを削除していないか、テーブルにまだこのエラーが発生しています。

私が間違っていることは何ですか

4

1 に答える 1

0
  • 定義句の問題。これには、古いデータベース ユーザーの情報が含まれています。
  • 提案:
    1. 新しいデータベースで有効でない場合は、定義者情報を無視します。または、次のような同じ手順に従う必要があります
    2. トリガーの作成
    3. SQL のエクスポート
    4. Sql を DB New にインポートします。
于 2012-10-25T06:24:05.737 に答える