欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【MySQL中两种快速创建空表的方式的区别】,下面是详细的分享!
MySQL中两种快速创建空表的方式的区别
在MySQL中有两种方法
1、create table t_name select ...
2、create table t_name like ...
第一种会取消掉原来表的有些定义,且引擎是系统默认引擎。
手册上是这么讲的:Some conversion of data types might occur. For example, the AUTO_INCREMENT attribute is not preserved, and VARCHAR columns can become CHAR columns.
第二种就完全复制原表。
先建立测试表:
mysql> create database dbtest;
Query OK, 1 row affected (0.03 sec)
mysql> use dbtest;
Database changed
mysql> create table t_old
-> (
-> id serial,
-> content varchar(8000) not null,
-> `desc` varchar(100) not null)
-> engine innodb;
Query OK, 0 rows affected (0.04 sec)
mysql> show create table t_old;
+-------+-------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------+
| t_old | CREATE TABLE `t_old` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`content` varchar(8000) NOT NULL,
`desc` varchar(100) NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------+
1 row in set (0.00 sec)
第一种方式:
mysql> create table t_select select * from t_old where 1=0;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table t_select;
+----------+--------------------------------------------+
| Table | Create Table +----------+---------------------------------------------+
| t_select | CREATE TABLE `t_select` (
`id` bigint(20) unsigned NOT NULL default '0',
`content` varchar(8000) NOT NULL,
`desc` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+----------+-------------------------------------------+
1 row in set (0.00 sec)
第二种方式:
mysql> create table t_like like t_old;
Query OK, 0 rows affected (0.02 sec)
mysql> show create table t_like;
+--------+-------------------------------------------------+
| Table | Create Table |
+--------+-------------------------------------------------+
| t_like | CREATE TABLE `t_like` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`content` varchar(8000) NOT NULL,
`desc` varchar(100) NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+-------------------------------------------------+
1 row in set (0.00 sec)
mysql>
以上所分享的是关于MySQL中两种快速创建空表的方式的区别,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何快速创建MySQL相同结构的表
答:1. 快速创建相同结构的表,包括索引: mysql SHOW CREATE TABLE a; CREATE TABLE `a` ( `name` varchar(50) default NULL, KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; mysql CREATE TABLE b LIKE a; mysql SHOW CREATE TABLE... >>详细
相关问题:excel 表格多期数据对比,想调用不同期间数据对比...
答:先将所有表格拖到一个工作簿中,然后运用函数(公式)解决。 假设只有两个表格“一月份”,“二月份” 一月份表 二月份表 那么在后面的空表上处理。假设这张表格命名为“比较” 在这张表的B2单元格输入:=二月份!B2-一月份!B2,然后下拖... >>详细
相关问题:Mysql workbench建立一个3个表格的数据库
答:有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。 1. check table 和 repair table 登陆mysql 终端: mysql -uxxx... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
