今天有人问我用什么方法可以创建空表?
在MYSQL中有两种方法。1、create table select ...2、create table like ...第一种很多人都知道,第二种却很少人用。第一种有个缺点1、第一种会取消掉原来表的有些定义。手册上是这么讲的: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 table t_old (id serial, content varchar(8000) not null,`desc` varchar(100) not null) engine innodb;
Query OK, 0 rows affected (0.01 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=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
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.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
PS:如果想要保持一样的引擎,就加上。这样写:create table t_select engine innodb select * from t_old where 1 = 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=utf8 |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
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=utf8 |
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
分享到:
相关推荐
- **主键索引(PRIMARY KEY)**:一个表只能有一个主键,它既是唯一索引也是非空索引。 - **普通索引(INDEX)**:最基础的索引,没有唯一性限制。 - **全文索引(FULLTEXT)**:适用于大文本字段,用于全文搜索...
【C语言调用MySQL快速教程】是针对C程序员的一个实用指南,旨在教授如何高效地在C程序中连接、操作MySQL数据库。本教程分为几个关键部分,包括建立数据库连接、数据插入、更新和删除,以及查询结果的处理。 首先,...
在MySQL中,创建表是数据库管理的基础操作,用于定义数据结构和字段属性。通过`CREATE TABLE`语句,我们可以构建新的表并设定相应的字段、数据类型、约束条件以及索引等。以下是一些关于创建MySQL表的关键知识点: ...
`命令,获取表的列名、数据类型、是否允许为空等信息。 4. **生成Java代码**: 根据解析到的表结构,自动生成Java实体类。每个字段对应一个Java属性,数据类型需要转换成Java兼容的类型,如`VARCHAR`转`String`,`...
MySQL 创建表是数据库管理的基础操作,它允许用户根据需求定义数据结构。在SQL语句中,`CREATE TABLE`用于创建新的表,而`IF NOT EXISTS`是一个可选的子句,确保只在表不存在的情况下执行创建操作,防止重复创建同名...
这通常是一个SQL脚本,用于在MySQL数据库中创建一个名为`t_area`的表。此表包含了中国各级行政区域的数据,包括省、市、县、镇以及村。通过运行这个脚本,用户可以在自己的数据库环境中快速构建出一个完整的中国地区...
### MySQL快速入门指南 #### 简介:数据库与MySQL的重要性 在当今信息化时代,数据管理对于企业和组织来说至关重要。数据库是一种存储、管理和检索数据的系统。使用数据库可以帮助我们高效地处理大量的数据,并...
Navicat 提供了一个友好的界面来帮助用户快速创建数据库。 三、创建新表 创建数据库后,用户可以创建新的表。创建表时需要指定表名、字段名、数据类型、字段长度、默认值、是否允许为空等信息。 Navicat 提供了一...
- `scan 't1'`用于查看`t1`表的内容,初始状态表应该是空的。 #### 三、Kettle工具介绍与配置 1. **Kettle简介**:Pentaho Data Integration (PDI),也称为Kettle,是一个开源的数据集成平台,用于执行各种数据...
MySQL是世界上最受欢迎的开源数据库系统之一,主要用于存储和管理数据。MySQL 8是其最新的主要版本,带来了许多性能提升和新特性。这个“mysql-8官方安装zip包...对于初学者和开发者来说,这是快速入门MySQL的好途径。
10. **创建快捷方式**:在/usr/bin目录下创建一个指向mysql客户端的快捷方式,方便快速启动。 通过以上步骤,可以在Windows和Linux两种操作系统上安装并配置MySQL单机版。需要注意的是,在实际操作中,每一步都可能...
除了全文索引,MySQL还提供了其他类型的索引,如主键索引(唯一且不允许为空)、普通索引(非唯一)和唯一索引(不允许重复值)。在设计数据库时,应根据查询需求选择合适的索引类型,以达到最佳的查询性能。同时,...
MySQL是世界上最受欢迎的开源数据库系统之一,尤其适合初学者学习。本教程主要涵盖了MySQL的基础知识,...通过学习这些基础知识,你将能够掌握如何创建、修改和查询MySQL数据库,为进一步深入学习和实践打下坚实基础。
- **Docker创建MySQL**:Docker提供了一种轻量级的虚拟化方式,可以方便地创建和管理MySQL容器,实现数据库的快速部署和隔离。 - **日期时间处理**:MySQL支持多种日期和时间类型,如DATE、TIME、DATETIME等,以及...
- **快速创建表**:通过`SELECT`语句可以基于现有数据快速构建新表。 例如,下面的SQL语句创建了一个名为`tb_admin`的表,包含`id`、`nickname`、`password`和`create_time`四列: ```sql CREATE TABLE tb_admin ...
如数据表的登记目录、所属的数据库名、表名、表类型(如系统视图或基表)、使用的数据库引擎(如MyISAM、CSV或InnoDB)、创建时间、更新时间和检查时间,以及创建选项和表的注释。通过查询这个表,你可以获取到一个...
在Excel中,我们可能需要设置一个结构化的表格,每一列对应数据库表中的一个字段,包括字段名、字段类型、长度、是否为主键、是否允许为空等属性。用户需根据实际需求填充这些信息,确保它们符合MySQL的语法规范。 ...
MySQL二进制安装包是一种非源码编译的安装方式,它通常包含了预编译的二进制可执行文件,适合快速部署和配置MySQL数据库服务器。在Linux环境下,这种安装方式尤其常见,因为Linux发行版之间的库差异可能导致源码编译...
[client] port = 3306 socket=/home/mysql/data/mysql.sock ...# 如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出 myisam_repair_threads ...