MySQL参数解析sql_quote_show_create

2023年 8月 15日 57.2k 0

MySQL执行show create table和show create database命令,显示建表或者建库语句时,会在表名、库名、字段名的两边加上引号,比如 `id`,参数 sql_quote_show_create 设置为OFF时,可以将库名、表名、字段名两侧的引号去除。

sql_quote_show_create:

  • 作用范围:全局,会话级
  • 动态修改:是
  • 取值范围:ON,OFF
  • 默认值:ON

示例:
(1)sql_quote_show_create=ON,有引号

mysql> show create table tb\G
*************************** 1. row ***************************
Table: tb
Create Table: CREATE TABLE `tb` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

(2)sql_quote_show_create=OFF,无引号

mysql> show create table tb\G
*************************** 1. row ***************************
Table: tb
Create Table: CREATE TABLE tb (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) DEFAULT NULL,
PRIMARY KEY (id),
KEY idx_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

在sql_quote_show_create=OFF时,有时候也有可能出现引号,比如表名,库名或者字段名使用了MySQL的关键字时,也会加上引号,如下所示,字段create,由于是MySQL关键字,两边加上了引号,而age没有加引号。

mysql> show create table tb1\G
*************************** 1. row ***************************
Table: tb1
Create Table: CREATE TABLE tb1 (
`create` varchar(50) DEFAULT NULL,
age int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论