2009-11-19 5 views
3

У меня есть таблица, в которой первый столбец является auto_increment. Я хочу вставить данные в таблицу, но пропустить первый столбец, поскольку он автоматически обновляется при запуске новой строки. так:MySQL пропустить имя столбца при вставке значений

INSERT INTO table VALUES (NULL,"lady","gaga","rulz"); 

Но NULL не может быть вставлен в столбец, как я указывал ранее. Что мне нужно, чтобы заменить NULL так, чтобы в столбце ничего не было вставлено?

ответ

5

Просто убедитесь, что вы указали соответствующие имена столбцов

INSERT INTO table (col1, col2, col3) VALUES ("lady","gaga","rulz"); 

Вам даже не нужно заполнить все столбцы (если они не нужны), то есть.

INSERT INTO table (col2) VALUES ("gaga"); 
+0

Большое спасибо! Я буду использовать его. – Gal

0

Необходимо явно указать имена и порядок столбцов. Других слова

INSERT INTO table (field2, field3, field4) VALUES ("lady","gaga","rulz"); 

КСТАТИ это, как правило, хорошая идея, чтобы избежать неявного синтаксиса вставки (но, возможно, для простейших времени/отладок фрагментов), чтобы не удивляются, когда/если базовая таблица схема была как-то изменилась.

Кроме того, так что вы знаете, что-то, получите вставлено в (здесь) FIELD1 колонке. Когда вы определяете или изменяете схему таблицы, заданное поле может быть нулевым или нет, и/или оно может иметь значение по умолчанию или нет. В вышеприведенном SQL вы можете только опускать значения для полей, которые либо обнуляются, либо имеют значение по умолчанию; SQL в противном случае возвращает ошибку и не будет вставлять какую-либо часть новой записи.

3
insert into table(field1, field2, field3) values('lady', 'gaga', 'sucks') 
+4

Спасибо большое! Хотя «отстой» может привести к сбою, поскольку он явно неверен. – Gal

+0

@Galen, LOL, по крайней мере, она не сделала -Rep вас ;-) – mjv

Смежные вопросы