Как вставить новую строку в базу данных с колонкой AUTO_INCREMENT без указания имен колонок? - PullRequest
21 голосов
/ 16 августа 2010

У меня есть таблица со следующими столбцами:

  • id - INT без подписи AUTO_INCREMENT
  • name - VARCHAR (20)
  • group - VARCHAR (20)

Я знаю, что могу добавить строку, подобную этой:

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

Интересно, есть ли способ добавитьстрока без указания имен столбцов , например, когда нет столбца AUTO_INCREMENT?

Ответы [ 3 ]

25 голосов
/ 16 августа 2010

Для некоторых баз данных вы можете просто явно вставить NULL в столбец auto_increment:

INSERT INTO table_name VALUES (NULL, 'my name', 'my group')
9 голосов
/ 16 августа 2010

Еще лучше, используйте ПО УМОЛЧАНИЮ вместо NULL. Вы хотите сохранить значение по умолчанию, а не NULL, которое может вызвать значение по умолчанию.

Но вам лучше назвать все столбцы, с помощью фрагмента SQL вы можете создать все необходимые INSERT, UPDATE и DELETE. Просто проверьте information_schema и создайте нужные вам запросы. Нет необходимости делать все вручную, SQL может вам помочь.

1 голос
/ 16 августа 2010

Просто добавьте имена столбцов, да, вместо этого вы можете использовать Null, но это очень плохая идея - никогда не использовать имена столбцов в любой вставке.

...