create table like 和create table select 比较
2013-01-10 16:00
274 查看
语法:
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name
[(create_definition,...)]
[table_options][select_statement]
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name
[(]LIKEold_tbl_name[)];
测试过程:
原数据表:
mysql>showcreatetabletest_order\G
***************************1.row***************************
Table:test_order
CreateTable:CREATETABLE`test_order`(
`pay_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,
`origin`int(10)DEFAULTNULL,
`team_id`int(11)DEFAULTNULL,
`state`int(11)DEFAULTNULL,
KEY`team_id`(`team_id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8
1rowinset(0.00sec)
mysql>createtableccselect*fromtest_order;
QueryOK,9900rowsaffected(0.11sec)
Records:9900Duplicates:0Warnings:0
mysql>createtableddliketest_order;
QueryOK,0rowsaffected(0.22sec)
查看数据:
mysql>select*fromcclimit2;
+---------------------+--------+---------+-------+
|pay_time|origin|team_id|state|
+---------------------+--------+---------+-------+
|2011-06-2218:04:47|10|100|100|
|2011-06-2218:04:47|10|100|101|
+---------------------+--------+---------+-------+
2rowsinset(0.00sec)
mysql>select*fromdd;
Emptyset(0.00sec)
结果:cc表中数据与原表test_order中的一致,dd表中无数据
查看表结构:
mysql>showcreatetablecc\G
***************************1.row***************************
Table:cc
CreateTable:CREATETABLE`cc`(
`pay_time`timestampNOTNULLDEFAULT'0000-00-0000:00:00',
`origin`int(10)DEFAULTNULL,
`team_id`int(11)DEFAULTNULL,
`state`int(11)DEFAULTNULL
)ENGINE=InnoDBDEFAULTCHARSET=utf8
1rowinset(0.00sec)
mysql>showcreatetabledd\G
***************************1.row***************************
Table:dd
CreateTable:CREATETABLE`dd`(
`pay_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,
`origin`int(10)DEFAULTNULL,
`team_id`int(11)DEFAULTNULL,
`state`int(11)DEFAULTNULL,
KEY`team_id`(`team_id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8
1rowinset(0.00sec)
结果:cc表中,原表中的索引消失了;dd表与原表一致
结论:
createtableselect会将原表中的数据完整复制一份,但表结构中的索引会丢失。
createtablelike只会完整复制原表的建表语句,但不会复制数据
相关文章推荐
- create table like 和create table select 比较
- create table like 和create table select 比较
- create table like 和create table select 比较
- MySQL中表复制:create table like 与 create table as select
- mysql表复制create table like和create table as比较
- Mysql create table tb as select 和create table tb like的区别
- MySQL中表复制:create table like 与 create table as select
- create table xxx as select 与 create table xxx like
- MySQL中表复制:create table like 与 create table as select
- create table tb as select 和create table tb like的区别
- MySQL中表复制:create table like 与 create table as select
- postgres create table as select & create table like
- mysql表复制create table like和create table as比较
- MySQL中表复制:create table like 与 create table as select
- create table as select性能测试
- oracle 中 create table tb_content_bak as select * from tb_content where 1=2 long字段解决办法
- hive-bug:create db.tablename as select .....
- Mysql复制表结构,create table order like orderdetails;
- 原表是nologging,为什么create table.. as select还是有redo log产生?
- 浅谈create table as select