Reputation: 171341
I have a table with the following columns:
id
- INT UNSIGNED AUTO_INCREMENTname
- VARCHAR(20)group
- VARCHAR(20)I know that I can add a row like this:
INSERT INTO table_name (name, group) VALUES ('my name', 'my group')
I wonder if there is a way to add a row without specifying the column names, like when there is no AUTO_INCREMENT column ?
Upvotes: 53
Views: 192881
Reputation: 65547
For some databases, you can just explicitly insert a NULL
into the auto_increment
column:
INSERT INTO table_name VALUES (NULL, 'my name', 'my group')
Upvotes: 66
Reputation: 127086
Even better, use DEFAULT instead of NULL. You want to store the default value, not a NULL that might trigger a default value.
But you'd better name all columns, with a piece of SQL you can create all the INSERT, UPDATE and DELETE's you need. Just check the information_schema and construct the queries you need. There is no need to do it all by hand, SQL can help you out.
Upvotes: 37
Reputation: 96562
Just add the column names, yes you can use Null instead but is is a very bad idea to not use column names in any insert, ever.
Upvotes: 1