数据表复制
使用下面的写法复制时候会把db2的结构和索引复制过来,但是数据是不会复制过来的
CREATE TABLE IF NOT EXISTS db1.a
LIKE db2.a
使用下面的写法复制时候会把db2的结构数据都复制过来,但是索引不会复制过来
CREATE TABLE db1.a
SELECT * FROM db2.a
赋值数据可以在后面加条件过滤复制
CREATE TABLE db1.a
SELECT * FROM db2.a where 条件
表数据复制插入
有的操作是导出成SQL文件再导入,如果字段名字不一致也好处理。
下面就讲解一下数据表数据导入的不同情况的SQL
1.表结构都一致
按照上面新建数据表那数据结构肯定一致了,就可以用一下的写法
INSERT INTO db1.a
SELECT * FROM db2.a
2.表结构不一致
INSERT INTO db1.a('id','name','age')
SELECT c.id,c.user_name,c.age FROM db2.a as c
但是每一个字段数据的类型是要一致的哦
举一个栗子:
INSERT INTO `person`.`student` (
`name_x`,
`emp_no`,
`mobile`,
`age`,
`id_card`,
`hk_address`,
`culture_degree`,
`exam_result`,
`sex`,
`type_x`,
`password`,
`link_man`,
`master_flag`,
`create_by`,
`create_by_name`,
`create_date`,
`update_by`,
`update_by_name`,
`last_update`,
`ext_info`,
`in_service`
)
SELECT
s.principal,
NULL,
s.phone,
sc.principal_age,
s.id_card,
s.address,
s.education,
NULL,
s.sex,
NULL,
NULL,
NULL,
'owner',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
s.station_id,
NULL
from user.student s
LEFT JOIN user.course sc on sc.id = d.course_id
可以根据例子发现可以联表并且加入条件,其实后面的就是查询,想怎么拼接都可以,但是结果数据类型和插入表字段数据类型要一一致,
以上操作都是在同一个mysql环境下操作的。不足的后面加入,记录一下。
《………………………………………………菜鸟起飞中,请各位走过路过的多多指教……………………………………》