数据库进行分表设计,分表的结构都是一致的, 仅仅是名字不同而已,可用create table user2 like user1来创建相同的表结构, 来玩下:
mysql> show create table user1;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user1 | CREATE TABLE `user1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`birthday` date DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`address` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
mysql>
mysql>
mysql> create table user2 like user1;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql>
mysql>
mysql> show create table user2;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user2 | CREATE TABLE `user2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`birthday` date DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`address` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
另外, 来看看as和like的区别, 如下:
create table like:
说明:复制表结构和索引(但不包括表内的具体内容)
用法:create table user2 like user1
create table as:
说明:复制表结构和数据(但不包括索引)
用法:
create table user2 as select * from user1;
create table user2 as select * from user1 limit 0;
其中,limit 0表示只复制表结构,不复制数据。
简单,不多说。