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

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

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

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

Q&A

解決済

5回答

2291閲覧

【SQL】エラー箇所がわかりません。

hiro__12

総合スコア36

MySQL

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

0グッド

0クリップ

投稿2018/03/30 03:50

MySQLのデータベースの登録の際に下記のエラーが発生したのですが
エラー箇所がわからず、対処に困っています。

発生している問題・エラーメッセージ

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 ''mojidukai_types' ( 'id' int(11) unsigned NOT NULL AUTO_INCREMENT, 'name' varcha' at line 1

該当のソースコード

mysql> CREATE TABLE 'mojidukai_types' ( -> 'id' int(11) unsigned NOT NULL AUTO_INCREMENT, -> 'name' varchar(8) NOT NULL DEFAULT '', -> 'created_at' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -> 'updated_at' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -> PRIMARY KEY ('id') -> ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

お分かりになられる方、どうかご教授ください。

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

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

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

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

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

guest

回答5

0

テーブル名と、カラム名をくくっているシングルコーテーション「'」のせいではないでしょうか?

値をくくるのは、シングルコーテーション「'」ですが、
テーブル、カラム名をくくれるのは、バッククォート「`」です。

投稿2018/03/30 04:00

mix-peach

総合スコア1910

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

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

hiro__12

2018/03/30 04:42

解答ありがとうございます!
guest

0

ベストアンサー

MySQLの場合テーブル名やカラム名はシングルクォーテーションではなく
バッククォーテーションで囲んで下さい

SQL

1CREATE TABLE `mojidukai_types` ( 2`id` int(11) unsigned NOT NULL AUTO_INCREMENT, 3`name` varchar(8) NOT NULL DEFAULT '', 4`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 5`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 6PRIMARY KEY (`id`) 7) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

※nameのデフォ値の値を指定するところはシングルクォートのままで

投稿2018/03/30 04:00

yambejp

総合スコア114829

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

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

hiro__12

2018/03/30 04:42

解答ありがとうございます!
guest

0

MySQLでテーブル名、カラム名を指定するときは、そのまま書く(なにも囲まない)か`(バッククォート)で囲みます。
'(シングルクォート)で囲んでしまうと文字列リテラルとして認識されてしまうのでエラーになります。

投稿2018/03/30 03:59

hineya09

総合スコア94

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

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

hiro__12

2018/03/30 04:43

解答ありがとうございます!
guest

0

CREATE TABLE 'mojidukai_types'
CREATE TABLE mojidukai_types

投稿2018/03/30 03:56

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hiro__12

2018/03/30 04:43

解答ありがとうございます!
guest

0

マニュアル MySQL CREATE TABLE くらい確認しましょう。
どこにテーブル名やカラム名をシングルクォートで囲め、って書いてありますか?

投稿2018/03/30 04:05

Orlofsky

総合スコア16415

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

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

hiro__12

2018/03/30 04:42

解答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問