MySQL Вставить данные в таблицу, используя номер столбца, а не имя - PullRequest
1 голос
/ 15 апреля 2011

Нужно ли знать имя столбца, чтобы можно было вставлять данные?потому что мне нужно вставить данные, используя номер столбца (первый столбец 1 ...)

Ответы [ 2 ]

4 голосов
/ 15 апреля 2011

Вместо этого:

insert into my_table (column1, column2)
    values (value1, value2)

Просто используйте это:

insert into my_table values (value1, value2)

т.е. не указывайте список столбцов.


OfКонечно, это будет работать, только если вы передадите данные для столбцов в том порядке, в котором они определены в таблице .

1 голос
/ 15 апреля 2011

если у вас есть таблица, например (например):

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 - третье.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...