1 .复制一份一摸一样的表
-- 创建一个a2表,表结构跟a1一样,这里复制的a2表跟a1的表结构是一样的,但不会复制a1表中的记录
CREATE TABLE a2 LIKE a1;
2.创建一个表,复制另一张表的指定字段和记录。
-- 注意,自己创建的表字段一定要跟被复制表字段一致
CREATE TABLE a3(
HOST CHAR(60),
USER CHAR(16),
PRIMARY KEY(HOST,USER) -- 注意,key不会复制: 主键、外键和索引,所以这里需要自己建立主键
)
SELECT
HOST,USER
FROM mysql.user;
-- 如果出现自己创建的表字段跟被复制的表字段不一致的情况,那么创建的表就是自己创建的字段和被复制的表的指定字段同时存在
CREATE TABLE a4(
ip CHAR(60) DEFAULT '1.1.1.1',
username CHAR(16) DEFAULT 'root'
-- primary key(ip,username) -- 因为新表会拷贝记录,所以上面两个字段有默认值,但是由于建立联合主键,默认值都一样又建不了,所以,这也是要考虑的地方
)
SELECT HOST,USER
FROM mysql.user;
-- 最终,a4表会有4个字段,ip,username,host,user,即当复制的字段不一致时,被复制的表字段会追加到当前表中
3.创建一个表,复制另一张表的指定字段和记录,但是创建的表字段又想不跟被复制表字段不一致
CREATE TABLE a5(
ip CHAR(60),
username CHAR(16),
PRIMARY KEY(ip,username)
)
SELECT HOST AS ip,USER AS username
FROM mysql.user;