2

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

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;
4

2 回答 2

2

SETset 是 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 生成下一个序列号。

设置时区:

SET time_zone = "+00:00"在UTC上设置会话时区。

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

于 2018-09-06T17:26:06.427 回答
0

此处使用该SET语句

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

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

  • 您不能AUTO_INCREMENT在每个数据库的基础上配置处理(仅每个服务器或每个会话)。
  • 数据库没有时区(服务器或当前会话有)。

尽管生成 SQL 转储的工具会设置一些变量来配置会话并获得可预测的环境来运行命令,但这种情况很常见。此类变量往往来自模板,并且不是针对脚本内容定制的。

于 2018-09-06T17:26:40.010 回答