если у вас есть таблица, например (например):
CREATE TABLE test (
id INT(10),
field1 VARCHAR(16),
field2 TINYINT(1)
);
Вы можете выполнить запрос
INSERT INTO test VALUES (1, 'field1 value', 0);
Вставляемые значения должны быть в том же порядке, что и объявленные столбцы . И, как упомянул Гальц, вы должны установить все поля , даже обнуляемые или автоматически увеличивающиеся. Фактически, для последнего вам нужно передать значение null
.
Например, если id
должен быть первичным ключом, установленным в «auto_increment
», этот запрос
INSERT INTO test VALUES (null, 'foo', 1);
SELECT * FROM test;
Вернется
+----+--------------+--------+
| id | field1 | field2 |
+----+--------------+--------+
| 1 | field1 value | 0 |
| 2 | foo | 1 |
+----+--------------+--------+
По другой теме, если вы не знаете заранее, каков порядок полей, вы можете выполнить этот запрос:
show columns from <table name>;
, который в этом случае вернул бы
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| field1 | varchar(16) | YES | | NULL | |
| field2 | tinyint(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
Таким образом, сообщая вам, что id
- это первое поле, field1
- второе, а field2
- третье.