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

SETMySQL 変数の 1 つを設定します。それらのいくつかはシステム変数であり、いくつかはユーザー変数です...

SET SQL_MODE:

SQL_MODEはシステム変数であり、ドキュメントで可能なすべてのモードを確認できます。

NO_AUTO_VALUE_ON_ZERO:

NO_AUTO_VALUE_ON_ZEROAUTO_INCREMENT 列の処理に影響します。通常、列に NULL または 0 を挿入して、列の次のシーケンス番号を生成します。NO_AUTO_VALUE_ON_ZERONULL のみが次のシーケンス番号を生成するように、0 のこの動作を抑制します。

タイムゾーンの設定:

SET time_zone = "+00:00"セッションのタイムゾーンをUTCに設定します。

詳細 : MySQL のタイム ゾーンを設定するにはどうすればよいですか?

于 2018-09-06T17:26:06.427 に答える
0

SETステートメントはここで使用されます

サーバーまたはクライアントの操作に影響を与える変数に値を割り当てる

ステートメントも変数も、データベースの作成に固有のものではありません。実際、目立った効果があるべきではないと思います:

  • AUTO_INCREMENTデータベースごとに処理を構成することはできません(サーバーごとまたはセッションごとのみ)。
  • データベースにはタイム ゾーンがありません (サーバーまたは現在のセッションにはあります)。

ただし、SQL ダンプを生成するツールがいくつかの変数を設定してセッションを構成し、コマンドを実行するための予測可能な環境を取得することは一般的です。このような変数は、テンプレートから取得される傾向があり、スクリプト コンテンツ用にカスタマイズされていません。

于 2018-09-06T17:26:40.010 に答える