如何在mysql中查看建表语句_mysql show create table讲解

来源:这里教程网 时间:2026-02-28 20:36:29 作者:

在 MySQL 中查看建表语句,最直接、最常用的方法就是使用

SHOW CREATE TABLE
命令。它能完整还原建表时使用的 SQL 语句(包括字段定义、索引、字符集、存储引擎等),是排查结构问题、迁移表结构或备份 DDL 的必备操作。

基本语法与执行方式

只需一条简单命令即可获取建表语句:

SHOW CREATE TABLE 表名;
—— 最常用,适用于当前默认数据库中的表
SHOW CREATE TABLE 数据库名.表名;
—— 显式指定数据库,避免跨库混淆

注意:表名要区分大小写(取决于系统变量

lower_case_table_names
和文件系统),建议用反引号包裹,如
`user_info`
,尤其当表名含特殊字符或关键字时。

结果字段说明

执行后返回两列:Table(表名)和Create Table(建表语句)。后者是重点,内容包含:

完整的
CREATE TABLE
语句
字段名、类型、是否允许 NULL、默认值(
DEFAULT
)、自增(
AUTO_INCREMENT
)等
主键、唯一索引、普通索引的定义(
PRIMARY KEY
,
UNIQUE KEY
,
KEY
表级选项:引擎(
ENGINE=InnoDB
)、字符集(
DEFAULT CHARSET=utf8mb4
)、排序规则(
COLLATE=utf8mb4_0900_ai_ci
)等

常见注意事项

这条命令看似简单,但有几个细节容易踩坑:

用户必须对目标表有
SELECT
权限(MySQL 8.0+ 要求
SELECT
SHOW VIEW
输出的建表语句中,
AUTO_INCREMENT
值显示的是当前下一个将分配的 ID,不是最大已用值
如果表使用了分区(PARTITION),语句中会包含完整分区定义;但若只查子分区,需用
SHOW CREATE TABLE ... PARTITION
(MySQL 5.7+ 支持)
部分字段默认值(如函数表达式
CURRENT_TIMESTAMP
)会原样显示,但旧版本 MySQL 可能不支持直接复用该语句建表,需检查兼容性

替代方案与补充技巧

除了

SHOW CREATE TABLE
,还有几种辅助方式:

DESCRIBE 表名;
DESC 表名;
—— 快速看字段名、类型、是否为空、键类型,但不显示索引详情和建表参数
SHOW CREATE DATABASE 数据库名;
—— 查看数据库默认字符集和创建语句(与表无关,但常一起使用)
查询
INFORMATION_SCHEMA
:如
SELECT CREATE_TABLE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='db_name' AND TABLE_NAME='tb_name';
—— 更适合程序化读取,但结果可能被截断(
CREATE_TABLE
字段为
longtext
,一般够用)

实际工作中,推荐优先用

SHOW CREATE TABLE
,清晰、完整、可靠。

相关推荐