2017-03-10 33 views
0

私は友人がWordPressをAWSに移行するのを手伝っていました。 WordPress全体がWPCloneを使用して彼によってエクスポートされました。私はそれをRDS(オーロラ)にインポートします。私はプロDBの人ではなく、基本的なMySQLコマンドしか知りませんでした。私はデータベースを復元しようとしていましたが、修復中にERROR: ERROR 1215 (HY000): Cannot add foreign key constraintが発生しました。エラー:エラー1215(HY000):外部キー制約を追加できません

私はshow engine innodb statusを実行し、LATEST FOREIGN KEY ERRORを確認しました。これは私が得たものですが、これを解決する方法はありません。

------------------------ 
LATEST FOREIGN KEY ERROR 
------------------------ 
2017-03-10 11:22:06 2b87437cb700 Error in foreign key constraint of table clientdb/wp_supsystic_ss_project_networks: 
FOREIGN KEY (`project_id`) REFERENCES `wp_supsystic_ss_projects` (`id`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8: 
Cannot resolve table name close to: 
(`id`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 

大変お手伝いをいたします。

編集:ここではcreate tablewp_supsystic_ss_networkswp_supsystic_ss_project_networkswp_supsystic_ss_projectsのためです:

CREATE TABLE `wp_supsystic_ss_networks` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) NOT NULL, 
    `url` varchar(255) NOT NULL, 
    `class` varchar(255) NOT NULL, 
    `brand_primary` varchar(7) NOT NULL DEFAULT '#000000', 
    `brand_secondary` varchar(7) NOT NULL DEFAULT '#ffffff', 
    `total_shares` int(11) unsigned DEFAULT '0', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; 

CREATE TABLE `wp_supsystic_ss_project_networks` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `project_id` int(11) unsigned DEFAULT NULL, 
    `network_id` int(11) unsigned DEFAULT NULL, 
    `position` int(11) unsigned DEFAULT '0', 
    `title` varchar(255) DEFAULT NULL, 
    `text` varchar(255) DEFAULT NULL, 
    `tooltip` varchar(255) DEFAULT NULL, 
    `text_format` varchar(255) DEFAULT NULL, 
    `use_short_url` bit(1) DEFAULT NULL, 
    `icon_image` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `FK__wp_supsystic_ss_projects` (`project_id`), 
    KEY `FK__wp_supsystic_ss_networks` (`network_id`), 
    CONSTRAINT `FK__wp_supsystic_ss_networks` FOREIGN KEY (`network_id`) REFERENCES `wp_supsystic_ss_networks` (`id`), 
    CONSTRAINT `FK__wp_supsystic_ss_projects` FOREIGN KEY (`project_id`) REFERENCES `wp_supsystic_ss_projects` (`id`) ON DELETE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; 

CREATE TABLE `wp_supsystic_ss_projects` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) NOT NULL, 
    `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `settings` text NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 
+0

コンテキストに両方のテーブルの 'create table'スクリプトを投稿できますか? –

+0

こんにちは@RavinderReddy!私は私の質問を更新しました。ありがとうございました! – sedawkgrep

+0

'project_networks'がmany:manyのマッピングテーブルの場合、アドバイス[_here_](http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table)を参照してください。他のヒントの中では、' id'と'PRIMARY KEY(project_id、network_id)'と 'INDEX(network_id、project_id)'を持っています。 –

答えて

0

2つの問題:

  1. この順序でテーブルを作成します。子テーブル親テーブルを(外国でキー)。 CREATE TABLE文に置き換え:
    • wp_supsystic_ss_projects
    • wp_supsystic_ss_networks
    • wp_supsystic_ss_project_networks
  2. 子テーブルwp_supsystic_ss_networksがスクリプトに存在しません。
関連する問題