1、插入数据时,如果主键冲突会如何?
默认有主键约束,不会插入成功。但是可以在主键冲突时,改成执行更新操作。
insert into teacher_class(id,t_name,gender) VALUES (9,'jing','female') on DUPLICATE key update t_name='jing',gender='female';
2、插入的数据源
除了使用自定义数据外,还可以是使用select语句查询到数据,作为插入的数据源。
数据可以来源于其他数据表,要求,字段数量和类型一致即可。
示例一:
mysql> insert into teacher_class(t_name,gender,room) select t_name,gender,room from teacher_class;
结果图:
示例2:
把teacher表中的t_name,class_name插入到teacher_class的t_name,room中去。
insert into teacher_class(t_name,room) select t_name,class_name from teacher;
3、replace关键字
表:
replace into teacher values(1,'jing','jing',25);
replace:如果存在,则修改;如果不存在,则增加。
4、更强大的功能--从外部导入数据(Load data infile)
Load data infile导入的是通过into outfile导出的数据
(因为表的第一个字段是自增长的,所以我们 select时,第一个字段置为null,然后导出到服务器中,这样再导入时,就不会有主键冲突,且会自动增长)
下面是导出数据
下面是导入操作:
mysql> load data infile 'f:/mysql/test/seven' into table teacher;