为了在没有在INSERT INTO语句中指定列名的情况下将值插入列中,我们必须提供与表中列数匹配的值数,同时还要注意该列的数据类型。
在下面的示例中,我们插入了值,但未指定列的名称。
mysql> Insert into student values(100,'Gaurav','Ph.D'); mysql> Select * from student; +--------+--------+--------+ | RollNO | Name | Class | +--------+--------+--------+ | 100 | Gaurav | Ph.D | +--------+--------+--------+ 1 row in set (0.00 sec) mysql> Insert into student values(200,'Rahul','Ph.D'),(300,'Aarav','B.tech'); Records: 2 Duplicates: 0 Warnings: 0 mysql> Select * from student; +--------+--------+--------+ | RollNO | Name | Class | +--------+--------+--------+ | 100 | Gaurav | Ph.D | | 200 | Rahul | Ph.D | | 300 | Aarav | B.tech | +--------+--------+--------+ 3 rows in set (0.00 sec)
如果我们不关心列的总数及其数据类型,MySQL将引发错误,如下所示:
mysql> Insert into student values(400,'Raman',M.Tech); ERROR 1054 (42S22): Unknown column 'M.Tech' in 'field list' mysql> Insert into student values(400,'Raman'); ERROR 1136 (21S01): Column count doesn't match value count at row 1