MySQL使用列号而不是名称将数据插入表中

| 我是否必须知道列的名称才能插入数据?因为我需要使用列号插入数据(第一列是1 ...)     
已邀请:
而不是使用这个:
insert into my_table (column1, column2)
    values (value1, value2)
只需使用:
insert into my_table values (value1, value2)
即,不指定列列表。 当然,这仅在您按表中定义的顺序传递列的数据时才有效。     
如果您有一个表(例如):
CREATE TABLE  test (
   id INT(10),
   field1 VARCHAR(16),
   field2 TINYINT(1)
);
您可以执行查询
INSERT INTO test VALUES (1, \'field1 value\', 0);
插入值必须与声明的列的顺序相同。正如Galz所提到的,您必须设置所有字段,即使是可为空或自动递增的字段也是如此。实际上,对于后者,您必须传递一个
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    |       |
+--------+-------------+------+-----+---------+-------+
因此,告诉您field5ѭ是第一个字段,
field1
是第二个字段,
field2
是第三个字段。     

要回复问题请先登录注册