dポイントプレゼントキャンペーン実施中!

 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-da …にリンクされている)


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を始めたので、全く見当がつきません。
皆様よろしくお願いします。
 

A 回答 (7件)

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



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

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

この回答への補足

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

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

補足日時:2013/08/18 19:44
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/08/19 15:30

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



>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;
として、テーブルを削除しても構いません
    • good
    • 0

> #1050 - Table 'xmastran' already exists


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

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

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

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

>ありがとうございます。


>どの部分で以下の判断ができますか!?

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

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

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

この回答への補足

ありがとうございます。
 とりあえず、よくわからなかったので、以下の
 文にしたら、
 #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
    • good
    • 1

> どの部分で以下の判断ができますか!?


>
> A:xmasデータベースがすでに存在しているというエラー
Can't create database 'xmas'; database exists
の一文です。
    • good
    • 0

>addr varchar(80) not null default' ',


ではなく
addr varchar(80) not null default ' ',
かな
    • good
    • 1

default の後にスペースが無い箇所が有るが、


それは転記ミスでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!