【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

时间:2023-12-16 17:43:26

之前我自己建立好了一个数据库xscj;表xs是已经定义好的

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

具体的定义数据类型如下:

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

为了复制表xs,我们新建一个表名为xstext,使用下列语句进行复制xs,或者说是备份都可以;

create table xstext as select * from x
create table xstext select * from xs;

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

我们可以看到,复制的表的字段与xs表的字段相同,不同之处在于复制的表没有主键或主码,同时复制的表里存储了与原表相同的信息

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

完成了表的复制,下面设置xstext表的主键,使用下列语句

alter table xstext add constraint KY_xstext primary key (学号);

xstext是我自己的表名,学号是表里的一个字段,换成自己的记好了

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

这样之后,就可以看到复制的表里主键已经设置成功了

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

因为表有主键,使用insert语句,会出错

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

换用replace语句,可以成功插入

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

【MYSQL笔记2】复制表,在已有表的基础上设置主键,insert和replace

数据来源:郑阿奇的《mysql数据库教程》