「[mysql] バックアップの取得とリストア」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
mysqldumpで全テーブルのバックアップをとった後、
O-Rマッピングツール(Hibernate)でテーブルを作成し
バックアップからINSERT文だけ抜き出して実行すると
外部キー制約で登録できない。
取得したバックアップファイルをそのままインポートすると、うまくいく・・
で、バックアップファイルを見ると
/*!40000 ALTER TABLE `TEST_TABLE` DISABLE KEYS */;
LOCK TABLES `TEST_TABLE` WRITE;
INSERT INTO `TEST_TABLE` VALUES (入力するデータ);
UNLOCK TABLES;
/*!40000 ALTER TABLE `TEST_TABLE` ENABLE KEYS */;
とあり、どうやらDISABLE KEYSとかENABLE KEYSで挟んであげればよさそう。
(追記)
....よくなかった。
ダンプしたファイルのこの辺が必要みたい。
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
mysqldumpで全テーブルのバックアップをとった後、
O-Rマッピングツール(Hibernate)でテーブルを作成し
バックアップからINSERT文だけ抜き出して実行すると
外部キー制約で登録できない。
取得したバックアップファイルをそのままインポートすると、うまくいく・・
で、バックアップファイルを見ると
/*!40000 ALTER TABLE `TEST_TABLE` DISABLE KEYS */;
LOCK TABLES `TEST_TABLE` WRITE;
INSERT INTO `TEST_TABLE` VALUES (入力するデータ);
UNLOCK TABLES;
/*!40000 ALTER TABLE `TEST_TABLE` ENABLE KEYS */;
とあり、どうやらDISABLE KEYSとかENABLE KEYSで挟んであげればよさそう。
(追記)
....よくなかった。
ダンプしたファイルのこの辺が必要みたい。
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
だから、こうする。
grep -e "\/" -e INSERT (dumpしたファイル名)