大家好,我有下表
CREATE TABLE test(
cod int(3) auto_increment,
text varchar(10),
PRIMARY KEY(cod));
我想知道,如果有办法可以插入这样的
INSERT INTO test VALUES ('test');
拿着这个
+-----+------+
| cod | text |
+-----+------+
| 1 | test |
+-----+------+
完全忽略cod列,因为它是自动递增的,我知道您可以声明要插入的值,或者只传递null,但是我想知道是否有一种方法不同于这两种方法
1条答案
按热度按时间wyyhbhjk1#
在insert语句中指定列列表。。。
从列列表中省略的任何列都将分配一个默认值。对于没有指定默认值的列,默认值为null。这相当于
注意,values列表中的第一个值指向column列表中的第一列,第二个值指向第二列,等等。
如果省略列列表,则默认列列表是表中定义的所有列,顺序与表中定义的列相同。所以我们也可以写:
所以这只是一种特殊情况,我们为每一列提供值,值的提供顺序与表中定义的列相同,在表中我们可以省略列列表。
最佳实践是始终提供列列表,而不依赖于表中列的顺序。这使得未来的读者更容易弄清楚哪些值被分配给哪些列,而不必查找表定义。这还可以防止insert语句在向表中添加新列或对列重新排序时“中断”。