• 締切済み
  • すぐに回答を!

SQL文(テーブル作成)に関する質問です

SQL文についての質問です。仕様にあわせたテーブルを作ろうとしていますが、何故... SQL文についての質問です。 仕様にあわせたテーブルを作ろうとしていますが、何故かエラーが出ます。 どのように書けばいいんでしょうか? どなたか教えて下さい。 以下がSQL文です。 mysql> CREATE TABLE Syain -> ( user_id char(10) NOT NULL ← ユーザーID:半角英数字記号文字 10桁(固定) 自動発番 -> username varchar(250) ←ユーザー名:最大250文字まで登録可能 -> user_Yomi varchar(250) ←読み仮名:最大250文字まで登録可能 -> email varchar(250) NOT NULL ←e-mail:250文字まで登録可能 @必須 -> renrak varchar(250) ←連絡先:250文字まで登録可能 -> Yubin varchar(8) NOT NULL ←郵便番号:必須 8桁 -> Adress varchar(10) ←住所:500文字(半角換算)真で登録可能。 -> PRIMARY KEY(user_id)); ←このuser_idはプライマリキーになる。 また、以下がエラーです。 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'usern ame varchar(250) user_Yomi varchar(250) email varchar(250) NOTNULL renrak v' at line 3 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数95
  • ありがとう数0

みんなの回答

  • 回答No.3
  • edis
  • ベストアンサー率33% (5/15)

エラーを見る限り、カンマが入ってないのが原因でしょう。 後、Primary key の指定方法がALTER文と混同してませんか? CREATE文の中で指定するなら user_id char(10) NOT NULL PRIMARY KEY, といった感じかと思いますが、、、

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • SQL文作成のお願い

    前提として下記のようなテーブルがあります。 テーブル名:test フィールド: 1)id: varchar, not null 2)name: varchar 3)date: timestamp with time zone, not null このテーブルに下記のようなレコードがあります。 '00001', 'A', '2005-01-01 00:00:00' '00001', 'B', '2005-07-01 00:00:00' '00001', 'C', '2005-11-01 00:00:00' '00002', 'X', '2005-01-20 00:00:00' '00002', 'Y', '2005-07-20 00:00:00' '00002', 'Z', '2005-11-20 00:00:00' ■今やりたいこと このテーブルからidごとにdateフィールド値が最近のレコードを取得したい。 ■やってみたこと 下記SQLを発行しました。 >select id, max(date) from test group by id order by id 結果==> 00001 2005-11-01 00:00:00 00002 2005-11-20 00:00:00 実際はnameフィールドの値も取得したいのですが、group by句を使うとフィールド指定ができませんでした。 ■だめだったSQL select id, name, max(date) from test group by id order by id どのようにSQLを書けばよろしいでしょうか?

  • SQL文でダブルクォートか

    SQL文でダブルクォートかアポストロフィーか迷っています!?  以下のSQL文の  name varchar(30) not null default " ,等の  最後から2番目に " ダブルクォートがあります。  教本を見ながら入力したのですが、' ' アポストロフィーが2個あるようにも見えます。 この場合、どちらが正規でしょうか!    以下問題のSQL文です。  よろしくお願いします。 CREATE DATABASE xmas; USE xmas; 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;

    • ベストアンサー
    • MySQL
  • phpMyAdminのSQLで、SQL文を登録が

     phpMyAdminのSQLで SQL文を登録するため、以下のエラーメッセージの中にあるCREATE DATABASE xmas;で始まる  SQL文を実行したところ、以下のエラーメッセージがでて、登録でできずに困っています。  どうしたら登録できますか!?    宜しくお願いします。    エラー 実行した SQL: CREATE DATABASE xmas; 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 verchar(20 default '', mail varchar(40) default '', course varchar(30) default '', nums integer default 0, PRIMARY KEP (book_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    • ベストアンサー
    • MySQL
  • 回答No.2

カラム名をバッククォートで括ったら通りました。 CREATE TABLE `Syain` ( `user_id` char( 10 ) NOT NULL , `username` varchar( 250 ) , `user_Yomi` varchar( 250 ) , `email` varchar( 250 ) NOT NULL , `renrak` varchar( 250 ) , `Yubin` varchar( 8 ) NOT NULL , `Adress` varchar( 10 ) , PRIMARY KEY ( `user_id` ) );

共感・感謝の気持ちを伝えよう!

  • 回答No.1

user_idの自動発番というのはMySQLの機能を使用して、ということでしょうか? その場合、カラムの属性は数値型にする必要があると思います。 あとは、、、カラムの区切りにカンマは入ってますよね??

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 以下のSQL文の間違いがわかりません

    MySQL5.5.9(RHEL)なのですが、以下のSQL文の間違いがわかりません。 どなたかオシエテいただけませんでしょうか? SQL ================= CREATE TABLE IF NOT EXISTS `seo` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `parentid` bigint(20) unsigned NOT NULL, seq decimal(10,5) unsigned NOT NULL, `urlpath` varchar(64) CHARACTER SET utf8 NOT NULL, `breadcrumbs` varchar(64) CHARACTER SET utf8 NOT NULL, `h1_title` varchar(64) CHARACTER SET utf8 NOT NULL, `keyword1` varchar(128) CHARACTER SET utf8 NOT NULL, `keyword2` varchar(128) CHARACTER SET utf8 NOT NULL, `keyword3` varchar(128) CHARACTER SET utf8 NOT NULL, `description` varchar(128) CHARACTER SET utf8 NOT NULL, `updatetime` datetime NULL, `en_urlpath` varchar(64) CHARACTER SET utf8 NOT NULL, `en_breadcrumbs` varchar(64) CHARACTER SET utf8 NOT NULL, `en_h1_title` varchar(64) CHARACTER SET utf8 NOT NULL, `en_keyword1` varchar(128) CHARACTER SET utf8 NOT NULL, `en_keyword2` varchar(128) CHARACTER SET utf8 NOT NULL, `en_keyword3` varchar(128) CHARACTER SET utf8 NOT NULL, `en_description` varchar(128) CHARACTER SET utf8 NOT NULL, `en_updatetime` datetime NULL, `multi_version` init(10) unsigned NOT NULL, `multi_flag` smallint(6) NOT NULL DEFAULT '1', `multi_memo` text CHARACTER SET utf8, UNIQUE KEY `id` (`id`), UNIQUE KEY `urlpath` (`urlpath`), UNIQUE KEY `h1_title` (`h1_title`), UNIQUE KEY `keywords` (`keyword1`,`keyword2`,`keyword3`) UNIQUE KEY `description` (`description`) UNIQUE KEY `en_urlpath` (`en_urlpath`), UNIQUE KEY `en_h1_title` (`en_h1_title`), UNIQUE KEY `en_keywords` (`en_keyword1`,`en_keyword2`,`en_keyword3`) UNIQUE KEY `description` (`en_description`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ======================================== エラーメッセージ(phpmyadmin) #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'init(10) unsigned NOT NULL, `multi_flag` smallint(6) NOT NULL DEFAULT '1', ' at line 23 ===== よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQLエラーの意味を教えてください

    自PCで開発しています。 テーブルを作成できたようなのですが、SQLを走らせようと思うとエラーがでてしまいます。 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 8 CREATE TABLE linkbook_juku( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , juku VARCHAR( 255 ) NOT NULL , address VARCHAR( 255 ) NOT NULL , description TEXT, pwd INT( 2 ) , MODIFY DATE NOT NULL , ); このSQLでなにが間違っているか見当がつきません。 ご存知の方いたらご教授頂けたら幸いです。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLで特定のテーブルが作成できない

    MySQLにログインしcategoryというテーブルを作成しようと思っているのですが作成できません。 [列名],[データ型]は key, 整数型、プライマリキーとする category, 可変長文字型、最大100文字 keyword, 可変長文字型、最大200文字 というものを作りたいので、 create table category( key int not null, category varchar(100), keyword varchar(200), primary key(key) ); で作成したのですが、 ERROR 1064: You have an error in your SQL syntax near 'int not null, category varchar(100), keyword varchar(200), primary key(key) )' at line 2 とエラーが表示されてしまいます。 エラーから推測するにkeyが悪いということだと思うのですが、何が問題なのか理由が分かりません。 一体何が原因なのでしょうか? MySQLのバージョンはVer 11.18 Distrib 3.23.57です。

    • ベストアンサー
    • MySQL
  • カラム名の付け方について

    このジャンルでお願いします。 例えば次のようなアカウント情報を格納するテーブルがあったとして CREATE TABLE user (  id int(11) NOT NULL AUTO_INCREMENT,  name varchar(64),  email varchar(64),  password varchar(64),  PRIMARY KEY(id) ); idカラム名を「id」か「user_id」にするか悩んでいます。 自分としては「id」のままで良いと思っているのですが、 参考書や他の方のやり方を見てると「user_id」のようにしてる方もいます。 「user_id」にすることによってSQL文を見た時にも何のidかすぐ分かるし、 USING句を使えるなどのメリットがあるのでたしかにこちらの方が良いかなぁとは思うのですが、 「user_id」にするなら統一性をもたせるために「name」も「user_name」にするのか、 「email」も「user_email」にするのか、などキリがないというか・・・ そういう理由もあって自分としては「id」のままなのですが、 みなさんはどちらのやり方をされているのでしょうか?

  • かねやんMySQLAdmin1.43

    WinXpでmysqlを勉強中です。 かねやんMySQLAdmin1.43を使って、Sql発行を押し下のように書き込んで実行するとエラーがでます。 CREATE TABLE hotelmember ( hotel_name varchar(40) NOT NULL, com_name varchar(40) NOT NULL, charge_name varchar(40) NOT NULL, id varchar(40) NOT NULL, pass varchar(40) NOT NULL, mail varchar(40) NOT NULL, zip varchar(40) NOT NULL, add varchar(40) NOT NULL, tel varchar(40) NOT NULL, url varchar(40) NOT NULL, memo varchar(40) NOT NULL, PRIMARY KEY ( id ) ) エラー文 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'add varchar(40) NOT NULL,tel varchar(40) NOT NULL, そこで add varchar(40) NOT NULL, tel varchar(40) NOT NULL, url varchar(40) NOT NULL, memo varchar(40) NOT NULL, を削除するとうまくテーブルが作成されます。 なにが悪いんでしょうか?

    • ベストアンサー
    • MySQL
  • 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を始めたので、全く見当がつきません。 皆様よろしくお願いします。  

    • ベストアンサー
    • MySQL
  • SQL文(テーブル作成)に関しての質問

    SQL文についての質問です。 仕様にあわせたテーブルを作ろうとしていますが、エラーが発生します。 申し訳ありませんが、どなたか教えて下さい。 以下がSQL文です。 -------------------- mysql> CREATE FULLTEXT INDEX search_data_idx SPLIT_ALPHA, SPLIT_DIGIT, SPLIT_SYMBOL, 2048 ON chrono_table(search_data); -------------------- 以下がエラーです。 -------------------- ERROR 1064 (42000) at line 28: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING NGRAM, SPLIT_ALPHA, SPLIT_DIGIT, SPLIT_SYMBOL, 2048 ON chrono_table(search' at line 1 -------------------- よろしくお願いいたします。

  • 以下の場合のSQL文の書き方教えてください。

    2つのテーブルÅ、Bに同じ項目名(NYUSYA_DATE)が存在していて、 通常はAからデータを取得し、取得した値がNULLの場合は、Bから取得します。 これを1つのSQLで出来ますか? 今は、両方取得しておいて、IF文で判定しようとしています。 テーブルA SYAIN_ID (NOT NULL) NYUSYA_DATE テーブルB GROUP_ID (NOT NULL) SYAIN_ID NYUSYA_DATE

  • テーブル作成時に1289エラーが出る。

    テーブル作成時に、ERROR 1289 (HY000): The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working というエラーが出てしまいます。 どういった原因が考えられるでしょうか? Mysql5.0.15を使っています。 CREATE文 CREATE TABLE USER ( ID BIGINT NOT NULL AUTO_INCREMENT ,NAME VARCHAR(30) ,PRIMARY KEY (ID) ) type=InnoDB;

  • SQLでTableが作れないlol

    show databases; と入力 自分のデータベースを use me; と入力 show tables;  と入力してからが問題なのですが・・・。 テーブルを作りたいのに、CREATEをしても作れないんですorz ↓↓入力した内容は以下のとおりです↓↓ CREATE TABLE cake ( code char(3), name varchar(10) NOT NULL, tanka char(8), from varchar(20) NOT NULL , drink varchar(10) NOT NULL , PRIMARY KEY (code) ); と、入力するとエラーで・・・ ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from varchar(20) NOT NULL, drink varchar(10) NOT NULL, PRIMARY KEY (code) )' at line 5 と出てくるのですが、よくわかりません。 昨日までは作れていたのになぜかわからず質問してみました。 code char(3) , を code int(3), としてもできませんでした。 これから作業で使うので、困ってます><! ご回答のほどよろしくお願いいたします。

    • ベストアンサー
    • MySQL