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

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

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

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

Q&A

解決済

MYSQLでINSERTできない

maguro.sake
maguro.sake

総合スコア2

MySQL

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

1回答

0グッド

0クリップ

280閲覧

投稿2022/10/28 02:26

編集2022/10/28 05:09

MYSQLでテーブルを登録して、INSERTで中身を挿入しようとしたのですが何度やってもEmpty setとなってしまいmst_usersにINSERTすることができません。
mst_usersという名前のテーブルがあることは確認できています。
こちらのテーブルに、
INSERT INTO mst_users (user_id,password,user_name,login_kbn) VALUES (99999,'tanaka','田中太郎',0);
INSERT INTO mst_users (user_id,password,user_name,login_kbn) VALUES (11111,'yamada','山田花子',1);

をいれたいのですがうまくINSERTすることができません。
ちなみに、0と1でカテゴリ分けをしています。
0:管理者、1:一般

どこが間違っているのかわからないので教えていただけると助かります。
初心者のためわかりやすくご指導いただきたいです。よろしくお願いいたします。

すでに一つテーブルは作成しており、新たに作成したmst_usersテーブルにINSERTさせたいです。

MYSQL

create table todos2 ( id int not null auto_increment is_done bool default false, title text, createnow datetime, primary key (id) ); create table mst_users ( user_id int not null, password varchar(8) not null, user_name varchar(16) not null, login_kbn int not null, primary key (user_id) ); insert into todos2 (title) values ('aaa'); insert into todos2 (title, is_done) values ('bbb', true); insert into todos2 (title) values ('ccc'); insert into todos2 (createnow) values (current_time); insert into todos2 (title,is_done,createnow) values ('eee',true,current_time); insert into mst_users (user_id,password,user_name,login_kbn) values (99999,'tanaka','田中太郎', 0); insert into mst_users (user_id,password,user_name,login_kbn) values (11111,'yamada','山田花子',1); select * from todos2; select * from mst_users;

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2022/10/28 03:04 編集

コードは画像ではコピペできないので、テキストでマークダウンcode機能でご提示を。 あと、実行した結果何が起きるのでしょう。起きている問題を記載してください。「うまくいかない」では情報が全くないので。 質問は編集できますので適宜調整してください
Orlofsky

2022/10/28 03:21

>をいれたいのですがうまくINSERTすることができません。 質問にその時のエラーメッセージを追記してください。 コードやエラーメッセージはMarkdownの[コード]を使ってください。 https://teratail.com/help/question-tips#questionTips37
maguro.sake

2022/10/28 03:34

実行した結果、Empty set(0.00 sec)と表示されます。
maguro.sake

2022/10/28 03:37

起きている問題は最初の方にも記載していますが、Empty set(0.00 sec)となりINSESRTで挿入したはずのものが表示されていないということです。
m.ts10806

2022/10/28 03:54

auto commit がOFFならcommitまでしないと参照できないかもしれません。
m.ts10806

2022/10/28 04:14

質問投稿画面でプレビュー確認してくださいね。 全角ではなく半角です。 できればコピペするか、機能を使ってください。
maguro.sake

2022/10/28 04:17

どこを半角にすればいいのかわからないです。
maguro.sake

2022/10/28 04:23

半角に変更しました。 すみませんが、言い方が少しきつく感じるのでもう少し柔らかくお伝えしていただけると助かります。
m.ts10806

2022/10/28 05:05 編集

そうですか。特にこれで問題になったことがないので何とも言えない部分はありますが、 意味だけしっかり捉えてもらえれば問題ないです。こちらに攻撃の意図はないです。 ただ、できてません。こちらの説明不足もあるかもしれませんが、全角を半角にして欲しいのはマークダウンの方です。 ``` ではなく ``` 「プレビュー」は投稿画面横に表示されている右側のスペースのことです。左側で入力すればリアルタイムで右側に反映されます。 一応、私が提示した過去質問でほとんどの方が正しく対応できるという実績(あくまで個人感覚ですが)があるので、ちゃんと読んで理解をしていただきたく。
m.ts10806

2022/10/28 05:07

なぜコードの提示の仕方が指摘されるかというと、 マークダウンのcodeを利用することにより、インデントなどが元のコード通りとなり、 1クリックでコピーできるようになるので、回答する側も再現しやすくなり、その分アドバイスも得られやすくなるためです。 DBについては、やはりそのまま確認できる環境を作れないとアドバイスは結構難しくなります。 バージョンなどでも違ってきますしね。ですから、見ている人が再現しやすくなる配慮は必須ということになります。
maguro.sake

2022/10/28 05:11

ご指摘いただいた箇所を訂正しました。 ちなみにVScodeを使用しています。
m.ts10806

2022/10/28 05:13

VSCodeから直接SQLを実行しているということですか? あとDBのオートコミットの設定はどうなってますか?
maguro.sake

2022/10/28 05:22

VSCodeからDockerにつなげて実行しています。 オートコミットの設定がわかりません。
maguro.sake

2022/10/28 05:33

オートコミットを調べてみたところ1となっています。

回答1

1

ベストアンサー

提示されたものが全てとしたら文法的な間違いがあります。

SQL

1create table todos2 ( 2 id int not null auto_increment -- ここに区切り , が必要 3 is_done bool default false,

ここを修正したら通ったので(phpMyAdminから実行)、他の構文上は間違いなく、ツールの表示上の問題ということも考えられます。
phpMyAdminでも提示コードを全て一気に実行した場合ですが、以下のようにすべての結果が返ってきました。
イメージ説明

ツールによっては1個ずつしかSQLが実行できないというものもあります。

Empty setについては、例えばCREATE TABLEの実行結果は以下のように返ってくるので、
返り値が空でした (行数 0)。 (クエリの実行時間: 0.2997 秒。)
SELECTではなくCREATE のほうが出てきている可能性もあります。

他のツールでも実行や確認をしてみてください。

ひとまず、GUIツールではなく、mysqlコマンドで直にコマンドログインして確認してみてはどうでしょうか。

投稿2022/10/28 06:29

m.ts10806

総合スコア80040

spoofy_dragon👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

maguro.sake

2022/10/28 06:42

ご回答ありがとうございます。 VScode上の問題ということでしょうか? mysqlコマンドで直にコマンドログインして確認してみてはどうでしょうか。ですが、どういうことかもう少し詳しく説明していただくことは可能でしょうか。
m.ts10806

2022/10/28 06:57

解決済みにされてしまってますが、操作ミスですか? >VScode上の問題ということでしょうか? VSCode重用者ではないですが、構文に問題がなく、テーブルもカラムも存在する以上はツールの「表示上の」問題の可能性が高いということです。 全て実行したつもりで1つ(最初のCREATEだけ)しか選択実行してなかったとか(ヒューマンエラー)、 全部実行したけど最初の実行結果しか出さないツールの仕様とか(ツールの仕様)、 全部実行して全部結果は出ているか上のほうの結果しか確認してなかったとか(ヒューマンエラー) >mysqlコマンドで直にコマンドログインして 何かしらツールを使ったとしても、結局はツールが代わりにコマンド実行してくれてるだけとなります。 ですので、ツールが代わりにやってくれてるコマンドを自分でコマンドを打って実行するということです。 実行されているOSやMySQLをどのように導入されたかにもよりますが、 WindowsならコマンドプロンプトからmysqlコマンドでDBログインすることで、 SQLを実行できるようになります(powershellとかでもできたと思いますが) 「他のツールでの確認」の1つですね。 コマンド調べたりが面倒であれば、GUIツールの方が良いと思います。 MySQL Workbench 、 A5M2 、 DBeaverなど。 私が動作確認したのはphpMyAdminというWebツールです。
maguro.sake

2022/10/28 07:07

ご回答ありがとうございます。 先程INSERTのところにいれていた田中太郎の文字をローマ字入力に変えてINSERTさせてみたところ表示されました。 これはもしかしたらVScodeでは漢字でのINSERTができない仕様ということなのでしょうか。 これでいいのかどうかはわかりませんがありがとうございました。
m.ts10806

2022/10/28 08:13 編集

>VScodeでは漢字でのINSERTができない仕様 無関係だと思います。 エラーが出ていない以上、実行コードは成功しています。 文字コードの違いでそのままではなく文字化けして登録されることはありますが、 INSERTの失敗ではありません。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

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