创建数据库时SQL_MODE和TIME_ZONE



这些选项是什么意思,创建数据库时有哪些可能的选择?

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
#------------------------------------------------------------
#        Script MySQL.
#------------------------------------------------------------
DROP DATABASE if exists BASETEST;
CREATE DATABASE IF NOT EXISTS BASETEST DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
USE BASETEST;

>SET集合是MySQL变量之一。其中一些是系统变量,其中一些是用户变量......

设置SQL_MODE:

SQL_MODE是一个系统变量,您可以在文档中查看所有可能的模式。

NO_AUTO_VALUE_ON_ZERO

NO_AUTO_VALUE_ON_ZERO会影响AUTO_INCREMENT列的处理。通常,您可以通过在列中插入 NULL 或 0 来生成列的下一个序列号。NO_AUTO_VALUE_ON_ZERO禁止 0 的此行为,以便只有 NULL 生成下一个序列号。

设置time_zone:

SET time_zone = "+00:00"将会话时区设置为UTC。

阅读更多 :如何设置 MySQL 的时区?

此处使用SET语句:

为影响服务器或客户端操作的变量赋值

语句和变量都不特定于数据库创建。事实上,我认为它们不应该有任何明显的效果:

不能基于每个
  • 数据库(仅按服务器或每个会话(配置AUTO_INCREMENT处理。
  • 数据库没有时区(服务器或当前会话有时区(。

生成 SQL 转储的工具通常会设置一些变量来配置会话并获取可预测的环境来运行命令。此类变量往往来自模板,而不是针对脚本内容自定义的。

最新更新