アプリ版:「スタンプのみでお礼する」機能のリリースについて

macOS Mojave 10.14.5
mysql 8.0.16


+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
( 見にくくなってると思いますが、すみません。 )

オートインクリメントの含むテーブルについてですが、
ターミナルで、以下のようにしてもエラーが返ります。
insert into product values ('あいうえお', 0);
ERROR 1136 (21S01): Column count doesn't match value count at row 1

あえて、データを追加しなくても、おのずと、id が増える認識でしたが、
認識違いでしょうか ?

方法をご教授下さい。

宜くお願い致します。

質問者からの補足コメント

  • うーん・・・

    プライマリキーなので、null はだめなようです。
    ERROR 1048 (23000): Column 'id' cannot be null

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/07/01 19:12
  • うーん・・・

    Field 'id' doesn't have a default value が返されました。
    プライマリーに、オートインクリメントって意味がないんでしょうかね。
    そして、プライマリーは完全に指定しないとダメってことかな〜。

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/07/01 19:58
  • はい、全く同様の構造です。

    「MySQL のAUTO_INCREMEN」の補足画像3
    No.4の回答に寄せられた補足コメントです。 補足日時:2019/07/02 01:10

A 回答 (4件)

insert into product values (null,'あいうえお', 0);



でもOK。
この回答への補足あり
    • good
    • 0
この回答へのお礼

お礼が遅れてしまい、すみません。
問題ありませんでした。
ご回答頂きありがとうございました。

お礼日時:2019/07/07 21:12

本当に、product テーブルは質問文に書いてある構造になっていますか?

「MySQL のAUTO_INCREMEN」の回答画像4
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございました。

お礼日時:2019/07/07 21:14

あれ?


大丈夫なはずなんだけど・・・

https://dev.mysql.com/doc/refman/8.0/en/innodb-a …

・Specifying NULL or 0 for the AUTO_INCREMENT column
 In all lock modes (0, 1, and 2), if a user specifies NULL or 0 for the AUTO_INCREMENT column in an INSERT,
 InnoDB treats the row as if the value was not specified and generates a new value for it.

insert into product values (0,'あいうえお', 0);

でもダメ?
    • good
    • 0
この回答へのお礼

お礼が遅れてしまい、すみません。
問題ありませんでした。私のやり方が何かおかしかったのだと思います。
大変、失礼致しました。
ご回答頂きありがとうございました。

お礼日時:2019/07/07 21:14

>insert into product values ('あいうえお', 0);



上記は下記と同じなので、カラム数が一致しません。

insert into product(id, name, price) values ('あいうえお', 0);

正しい書き方は下記です。

insert into product(name, price) values ('あいうえお', 0);
この回答への補足あり
    • good
    • 0
この回答へのお礼

お礼が遅れてしまいましたが、問題ありませんでした。
ご回答頂きありがとうございました。

お礼日時:2019/07/07 21:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!