こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データベースのインポートができません(MySQL)

●質問の主旨


下記のサイトを見ながら、データベースのテーブルを
インポートしようとしていますが、エラーが出ます。

この場合、phpmyadminのどこを確認すればよいでしょうか?
ご存知の方、ご教示願います。


http://www.dbonline.jp/phpmyadmin/export-import/index3.html


●開発環境

windows8
xammp1.8.1


●エラーの内容(添付画像)

エラー
実行した SQL:

--
-- データベース: `mydb10`
--
CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


MySQL のメッセージ:

#1007 - Can't create database 'mydb10'; database exists


●インポートの内容(mydb.sql)


-- phpMyAdmin SQL Dump
-- version 3.5.2.2
-- http://www.phpmyadmin.net
--
-- ホスト: 127.0.0.1
-- 生成日時: 2013 年 4 月 20 日 08:27
-- サーバのバージョン: 5.5.27
-- PHP のバージョン: 5.4.7

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!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 */;

--
-- データベース: `mydb10`
--
CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `mydb10`;

-- --------------------------------------------------------

--
-- テーブルの構造 `db10`
--

CREATE TABLE IF NOT EXISTS `db10` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`address` text NOT NULL,
`tel` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- テーブルのデータのダンプ `db10`
--

INSERT INTO `db10` (`id`, `name`, `address`, `tel`) VALUES
(1, 'あああ', 'いいい', '111'),
(2, 'ううう', 'えええ', '222'),
(3, 'おおお', 'かかか', '333');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

投稿日時 - 2013-04-20 15:45:29

QNo.8051562

すぐに回答ほしいです

質問者が選んだベストアンサー

>の構文は、mydb.sql(インポートのためのsqlファイル)内に

そうですね、sqlファイルをテキストエディタで開いて
データベース名の前に「IF NOT EXISTS」を書きこむことになります

なおこのエラーが回避されても
・同じデータベース内に同じテーブル名がある
・同じテーブル内で同じユニークデータがある
場合もどうようのエラーがでると思います。

そもそもバックアップしたデータをリストアするのに別のマシンでやっているのでは
ないのですか?
同じマシンでやる限りデータを戻すときに競合するのは避けられませんね

思い切ってデータベースごと削除してしまった方が分かりやすいかもしれません。

投稿日時 - 2013-04-22 14:42:40

お礼

たびたびのご回答ありがとうございます!

〉思い切ってデータベースごと
〉削除してしまった方が分かりやすいかもしれません。

ご指摘の通り、データベースを削除すると、
「IF NOT EXISTS」がなくても
インポートすることができました。

〉そもそもバックアップしたデータを
〉リストアするのに別のマシンでやっているのでは
〉ないのですか?

…同じマシンでやってました。
phpmyadminの操作練習の一環として
やってましたので。

その他のアドバイスも
今後の参考にさせていただきます。

投稿日時 - 2013-04-22 16:11:32

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>#1007 - Can't create database 'mydb10'; database exists

すでに(その名前の)データベースが存在するとあります

CREATE DATABASE IF NOT EXISTS `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

のような構文にしないとエラーになります

投稿日時 - 2013-04-22 09:24:33

補足

CREATE DATABASE IF NOT EXISTS `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

の構文は、mydb.sql(インポートのためのsqlファイル)内に
入れるのでしょうか?
また入れるとすれば、どこに入れたらよいのでしょうか?
たびたびの質問で恐れ入ります。

投稿日時 - 2013-04-22 13:32:18

お礼

yambejpさま
ご回答ありがとうございます!
補足質問もご確認いただければ
幸いです。

投稿日時 - 2013-04-22 13:32:24

あなたにオススメの質問