質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

3回答

1983閲覧

MySQLのテーブル作成について

maki_myo_

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2016/05/24 07:25

###前提・実現したいこと質問したいことを詳細に書いてください
新卒で文系からシステムエンジニアに就職した者です。プログラミング経験は一ヶ月弱といったところです。
会社で出された「スレッドフロート型掲示板の制作」という課題に取り組むにあたり、
スレッドに関するデータ項目をテーブルにまとめたいと思ったのですが、エラーが何度も出て埒があきません。

列の名前 データ型
スレッドID = threadID int
スレッド名 = threadName varchar(20)
スレ立て日時 = Original datetime
更新日時 = Update datetime

自分ではマニュアルの通りに入力しているつもりなのですが、どこか文法的におかしな箇所があるのでしょうか。ご教授お願い致します。

###該当のソースコード
MySQL

mysql> create table Thread(threadID int,threadName varchar(20),Original datetime,Update datetime);

###エラーメッセージ
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 'Update datetime)' at line 1

###試したこと
create table Thread(threadID int,threadName varchar(20));
と入力すると、正しくテーブルが作成されますが、
データ型がdatetimeの項目を追加すると、エラーが発生します。
また、datetime型のデータ項目だけでテーブルを作成しても、エラーは発生しませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Update が予約語だからでしょう。

SQL

1`Update`

のように ` バッククォートでくくると通ると思います。

投稿2016/05/24 07:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maki_myo_

2016/05/24 07:37

通りました。ありがとうございます。
guest

0

UpdateはMySQLの予約語であるため、型名として使用する場合は以下のようにバッククォート(`)で囲む必要があります。

https://dev.mysql.com/doc/refman/5.6/ja/reserved-words.html

sql

1create table Thread(threadID int,threadName varchar(20),Original datetime,`Update` datetime);

もっとも、型名やテーブル名に予約語を使うと、可読性を損なう上に SELECT や UPDATE の際に毎回バッククォートで囲んでやる必要があるため、よろしくありません。
別の名称に変更することをお勧めします。

投稿2016/05/24 07:33

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maki_myo_

2016/05/24 07:40

承知しました。考慮して新たに作りなおしてみます。
guest

0

エラーメッセージを読みましょう。
「SQL文が間違っています。1行目の'Update datetime)'の近くの文法エラーを正すために、自分のMySQLサーバーのバージョンと一致したマニュアルを確認してください」

とエラーメッセージに書かれていますね。

投稿2016/05/24 07:33

yohira0616

総合スコア255

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maki_myo_

2016/05/24 07:41

エラー原因箇所の割り出し方について把握できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問