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

解決済みの質問

SQL文を入力したらエラー

 phpMyAdminでSQLに
 以下の文を入力しました。

 CREATE DATABASE xmas;
USE xmas;
CREATE TABLE xmastran (
book_id int not null auto_increment,
name varchar(30) not null default ' ' ,
org varchar(50) not null default ' ',
addr varchar(80) not null default' ',
tel varchar(20) default ' ',
mail varchar(40) default ' ',
course varchar(30) default ' ',
nums integer default 0,
PRIMARY KEY (book_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 以上SQLに入力した文ですが!
 以下のエラーが出て先に進みません。
 
エラー
実行した SQL:

CREATE DATABASE xmas; → (http://dev.mysql.com/doc/refman/5.5/en/create-database.htmlにリンクされている)


MySQL のメッセージ: ドキュメント

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

サーバ "127.0.0.1" 上でクエリを実行する:

CREATE DATABASE xmas;
USE xmas;
CREATE TABLE xmastran (
book_id int not null auto_increment,
name varchar(30) not null default ' ' ,
org varchar(50) not null default ' ',
addr varchar(80) not null default' ',
tel varchar(20) default ' ',
mail varchar(40) default ' ',
course varchar(30) default ' ',
nums integer default 0,
PRIMARY KEY (book_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

  以上ですが、何が原因で進めないか原因を追及中です。
 最近SQLを始めたので、全く見当がつきません。
皆様よろしくお願いします。
 

投稿日時 - 2013-08-18 15:31:15

QNo.8224980

困ってます

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

エラーメッセージをちゃんと読みましたか?

xmasというデータベースとxmastranというテーブルを作るSQLになっていますが、
xmasデータベースがすでに存在しているというエラーです。

xmasデータベースを消した上でSQLを流すか、
 CREATE DATABASE xmas;
の一文を消したSQLを流してください。

投稿日時 - 2013-08-18 16:47:30

補足

 ありがとうございます。
 どの部分で以下の判断ができますか!?

A:xmasデータベースがすでに存在しているというエラー

投稿日時 - 2013-08-18 19:44:36

お礼

ありがとうございました。
 phpMyadminの一番左画面にある
 xamsを削除したのち、教本通りのプログラムの登録ができました。
[xmasデータベースがすでに存在しているというエラーです。]
xmasの削除方法がよくわかりませんでした。
だいぶ、慣れてきました。
 現在Apache2.2が起動できなくなっています。
 パソコンに付き物の「一難去ってまた一難」
です。

投稿日時 - 2013-08-19 15:30:23

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

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

回答(7)

ANo.7

以前から全く進んでいないようで残念です

>CREATE DATABASE xmas;
ではなく、以下としてください
CREATE DATABASE if not exists xmas;

>USE xmas;
phpMyAdminを利用しているならuse文は利用せずに、左のリストから選んでください

>CREATE TABLE ・・・
も、「if not exists」で処理してください。
CREATE TABLE if not exists xmastran (
book_id int not null auto_increment,
name varchar(30) not null default ' ' ,
org varchar(50) not null default ' ',
addr varchar(80) not null default' ',
tel varchar(20) default ' ',
mail varchar(40) default ' ',
course varchar(30) default ' ',
nums integer default 0,
PRIMARY KEY (book_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

もしくはcreate tableする前に
drop table if exists xmastran;
として、テーブルを削除しても構いません

投稿日時 - 2013-08-19 10:18:22

ANo.6

> #1050 - Table 'xmastran' already exists
>  (#1050 - テーブル 'xmastran'は既に存在します)
>  最初と似たようなエラーがでました。
> どこを、どう変えれば、解決しますか!?

いちいち聞いていてはいつまでたっても力はつきません。
まず落ち着いて、頭を使いましょう。

xmastranテーブルが存在するのに同名のテーブルを作成しようとするからエラーが出ているのです。
じゃあどうすればいいのか?
・既存のxmastranテーブルを削除してから再度CREATE TABLEする(テーブルに登録されているデータは消えます)
・既存のxmastranテーブルのテーブル定義を変更したいだけならALTER TABLEで変更する
・違う名前でCREATE TABLEする
といった方針が考えられます。

方針が決まったなら、どういうSQLを実行すればいいのか調べてください。

投稿日時 - 2013-08-19 08:49:47

ANo.5

>ありがとうございます。
>どの部分で以下の判断ができますか!?

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

 この英文の部分を日本語にすると、「'xmas'という名前のデータベースは作ることが出来ません。データベスは既に存在しています。」となります。(ちょっと意訳込み)

 これで、どこに書いてあるか解りますね。

投稿日時 - 2013-08-18 23:14:55

補足

ありがとうございます。
 とりあえず、よくわからなかったので、以下の
 文にしたら、
 #1050 - Table 'xmastran' already exists
 (#1050 - テーブル 'xmastran'は既に存在します)
 最初と似たようなエラーがでました。
どこを、どう変えれば、解決しますか!?
 よろしくお願いします。

CREATE DATABASE if not exists xmas;
USE xmas;
CREATE TABLE xmastran (
book_id int not null auto_increment,
name varchar(30) not null default ' ' ,
org varchar(50) not null default ' ',
addr varchar(80) not null default ' ',
tel varchar(20) default ' ',
mail varchar(40) default ' ',
course varchar(30) default ' ',
nums integer default 0,
PRIMARY KEY (book_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 

投稿日時 - 2013-08-19 07:53:22

ANo.4

> どの部分で以下の判断ができますか!?
>
> A:xmasデータベースがすでに存在しているというエラー
Can't create database 'xmas'; database exists
の一文です。

投稿日時 - 2013-08-18 21:20:26

ANo.2

>addr varchar(80) not null default' ',
ではなく
addr varchar(80) not null default ' ',
かな

投稿日時 - 2013-08-18 16:43:29

ANo.1

default の後にスペースが無い箇所が有るが、
それは転記ミスでしょうか?

投稿日時 - 2013-08-18 16:38:28

あなたにオススメの質問