mysql基础知识语法汇总整理(二)

insert

/*insert*/
insert into 表名(字段列表) values(值列表);
--蠕虫复制 (优点:快速复制数据,测试服务器压力)
insert into 表名1_插入 select (字段列表) from 表名2_复制;
例如:create table copy(
  id int(10) unsigned not null comment 'id',
  name char(20) not null default '' comment '名字'
)engine=InnoDB default charset=utf8 comment='复制表';
insert into copy values(1,'admin_a'),(2,'admin_b'),(3,'admin_c');

create table append(
  id int(10) unsigned not null comment 'id',
  name char(20) not null default '' comment '名字'
)engine=InnoDB default charset=utf8 comment='插入表';
insert into append select * from copy;

--主键(唯一索引)重复
insert into 表名(字段列表) values(值列表) on duplicate key update 字段1=值1,字段n=值n;
例如:create table conflict(
  id int(10) unsigned not null primary key comment 'id',
  name char(20) not null default '' comment '名字'
)engine=InnoDB default charset=utf8 comment='冲突表';
insert into conflict values(1,'admin_a');
insert into conflict values(1,'admin_b');--报错  解决:当主键不冲突的时候,相当于一条插入语句;当主键有冲突的时候,相当于一条更新语句.

insert into conflict values(1,'admin_b') on duplicate key update name='admin_b';

猜你喜欢

转载自www.cnblogs.com/cxx8181602/p/9559197.html