MySQLになれるための練習として以下の簡単なデータベースを作りました(名前は歴代のペット名です...)。
MySQL
1########EX_TABLE1############# 2CREATE TABLE EX_TABLE1 ( 3 ID INT NOT NULL PRIMARY KEY COMMENT '生徒ID', 4 NAME VARCHAR NOT NULL COMMENT '名前', 5 GENDER CHAR NOT NULL COMMENT '性別', 6 ENROLLEMENT DATE NOT NULL COMMENT '入校年', 7 MAJOR VARCHAR NOT NULL COMMENT '専攻', 8 REGIST_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登録日時' 9) ; 10 11########EX_TABLE1へレコードを挿入######## 12INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 13 VALUES(01, 'いまる', 'F' , 2007 , '英文学部' , NULL ) ; 14INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 15 VALUES(02, 'まろん', 'F' , 2009 , '教育学部' , NULL ) ; 16INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 17 VALUES(03, 'てやん', 'F' , 2010 , '薬学部' , NULL ) ; 18INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 19 VALUES(04, 'ちもたん', 'F' , 2016 , '経済学部' , NULL ) ; 20INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 21 VALUES(05, 'きゃん', 'F' , 2018 , '文化情報学部', NULL ) ; 22
これを実行すると以下のようなエラー内容が出てきてしまいました。
【エラー】----------------------------------------
SQL : #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL COMMENT '蜷榊燕',
GENDER CHAR NOT NULL COMMENT '諤ァ' at line 4
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
しかし文字化けしているのか何を指摘されているのかよくわからないし、at line 4 とかいているので一応四行目のコードを確認しましたが、四行目のNAMEのコードもこれといって間違っている部分がないように思えます。何が間違っていて、どのようにすればデータベースを実行できますか。
【追記】
Windows10
コマンドプロンプト
MySQL version 2.14.5
パソコン素人すぎて申し訳ないです。多分追記依頼の内容に沿ってないような追記をしていしまってるとおもいますが...
【再追記】
アドバイス受けて以下のようにコードを書きなおしましたがまだエラーが出てしまいます…。
MySQL
1########EX_TABLE1############# 2CREATE TABLE EX_TABLE1 ( 3 ID INT NOT NULL PRIMARY KEY COMMENT 'STUDENT_ID', 4 NAME VARCHAR(10) NOT NULL COMMENT 'NAME', 5 GENDER CHAR(1) NOT NULL COMMENT 'GENDER', 6 ENROLLEMENT YEAR NOT NULL COMMENT 'ENROLLEMENT', 7 MAJOR VARCHAR(10) NOT NULL COMMENT 'MAJOR', 8 REGIST_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'TIMESTAMP' 9) ; 10 11########EX_TABLE1へレコードを挿入######## 12INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 13 VALUES(01, 'IMARU', 'F' , 2007 , '英文学部' , NULL ) ; 14INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 15 VALUES(02, 'MARON', 'F' , 2009 , '教育学部' , NULL ) ; 16INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 17 VALUES(03, 'TEYAN', 'F' , 2010 , '薬学部' , NULL ) ; 18INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 19 VALUES(04, 'CHIMOTAN', 'F' , 2016 , '経済学部' , NULL ) ; 20INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP) 21 VALUES(05, 'CANTAN', 'F' , 2018 , '文化情報学部', NULL ) ; 22 23
【エラー】
Incorrect data value: '2007' for column 'ENROLLEMENT' at row 1
########EX_TABLE1#############
CREATE TABLE EX_TABLE1 (
ID INT NOT NULL PRIMARY KEY COMMENT 'STUDENT_ID',
NAME VARCHAR(10) NOT NULL COMMENT 'NAME',
GENDER CHAR(1) NOT NULL COMMENT 'GENDER',
ENROLLEMENT YEAR NOT NULL COMMENT 'ENROLLEMENT',
MAJOR VARCHAR(10) NOT NULL COMMENT 'MAJOR',
REGIST_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'TIMESTAMP'
) ;
########EX_TABLE1へレコードを挿入########
INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP)
VALUES(01, 'IMARU', 'F' , 2007 , '英文学部' , NULL ) ;
INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP)
VALUES(02, 'MARON', 'F' , 2009 , '教育学部' , NULL ) ;
INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP)
VALUES(03, 'TEYAN', 'F' , 2010 , '薬学部' , NULL ) ;
INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP)
VALUES(04, 'CHIMOTAN', 'F' , 2016 , '経済学部' , NULL ) ;
INSERT INTO EX_TABLE1 (ID, NAME, GENDER, ENROLLEMENT, MAJOR, REGIST_TIMESTAMP)
VALUES(05, 'CANTAN', 'F' , 2018 , '文化情報学部', NULL ) ;
【エラー】
Incorrect data value:'2007' for column 'ENROLLEMENT' at row1
もうなにをどうして良いか。。。お手上げです。。。
【再々追記】
このあとデータのYEAR型をDATE型にかえて10102017...みたいな感じで全部打ち直したらデータがとおりました。。。一応YEAR型もちゃんと調べて使ったのですがみなさんから見てYEAR型の使い方まちがっていますでしょうか?ご指摘あればよろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー