web-dev-qa-db-ja.com

列名を指定せずにAUTO_INCREMENT列を持つデータベースに新しい行を挿入する方法は?

次の列を持つテーブルがあります。

  • id-INT UNSIGNED AUTO_INCREMENT
  • name-VARCHAR(20)
  • group-VARCHAR(20)

私はこのような行を追加できることを知っています:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group')

行を追加する方法があるのだろうか列名を指定せずに、AUTO_INCREMENT列がないときのように?

21
Misha Moroshko

一部のデータベースでは、NULLauto_increment列に明示的に挿入できます。

INSERT INTO table_name VALUES (NULL, 'my name', 'my group')
26
Ike Walker

さらに良いことに、NULLの代わりに [〜#〜] default [〜#〜] を使用してください。デフォルト値をトリガーする可能性のあるNULLではなく、デフォルト値を保存する必要があります。

ただし、すべての列に名前を付けた方がよいでしょう。SQLを使用して、必要なすべてのINSERT、UPDATE、およびDELETEを作成できます。 information_schema を確認し、必要なクエリを作成するだけです。すべてを手作業で行う必要はありません。SQLが役立ちます。

11
Frank Heikens

列名を追加するだけです。はい、代わりにNullを使用できますが、挿入に列名を使用しないことは非常に悪い考えです。

2
HLGEM