- TiDBについて
- クイックスタート
- デプロイ
- 移行する
- 管理
- アップグレード
- 規模
- バックアップと復元
- BRツールを使用する(推奨)
- タイムゾーンの構成
- 毎日のチェックリスト
- TiFlashを管理する
- TiUPを使用してTiDBを管理する
- オンラインでConfiguration / コンフィグレーションを変更する
- オンラインの安全でない回復
- 監視と警告
- トラブルシューティング
- 性能チューニング
- システムチューニング
- ソフトウェアのチューニング
- Configuration / コンフィグレーション
- コプロセッサーキャッシュ
- SQLチューニング
- チュートリアル
- TiDBツール
- 概要
- ユースケース
- ダウンロード
- TiUP
- ドキュメントマップ
- 概要
- 用語と概念
- TiUPコンポーネントを管理する
- FAQ
- トラブルシューティングガイド
- コマンドリファレンス
- 概要
- TiUPコマンド
- TiUPクラスターコマンド
- 概要
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUPDMコマンド
- 概要
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDBクラスタートポロジリファレンス
- DMクラスタートポロジリファレンス
- ミラーリファレンスガイド
- TiUPコンポーネント
- TiDB Operator
- バックアップと復元(BR)
- TiDB Binlog
- TiDB Lightning
- TiDBデータ移行
- TiDBデータ移行について
- DMの概要
- 基本的な機能
- 高度な機能
- シャーディングされたテーブルからのデータのマージと移行
- GH-ost/PT-oscを使用するMySQLデータベースからの移行
- SQL式を使用してDMLをフィルタリングする
- DMアーキテクチャ
- ベンチマーク
- クイックスタート
- データ移行シナリオ
- デプロイ
- 管理
- ツール
- クラスターのアップグレード
- データソースを作成する
- データソースの管理
- データ移行タスクの管理
- シャーディングDDLロックを手動で処理する
- 移行するMySQLインスタンスを切り替えます
- 移行するテーブルのスキーマを管理する
- アラートを処理する
- デイリーチェック
- トラブルシューティング
- 性能チューニング
- 参照
- セキュリティ
- モニタリング指標
- アラートルール
- エラーコード
- FAQ
- 用語集
- 例
- リリースノート
- TiCDC
- Dumpling
- sync-diff-inspector
- TiSpark
- 参照
- クラスターアーキテクチャ
- 主要な監視指標
- セキュリティ
- 権限
- SQL
- SQL言語の構造と構文
- SQLステートメント
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- データ型
- 関数と演算子
- クラスター化インデックス
- 制約
- 生成された列
- SQLモード
- テーブル属性
- トランザクション
- ガベージコレクション(GC)
- ビュー
- パーティショニング
- 一時テーブル
- 文字セットと照合
- SQLの配置ルール
- システムテーブル
mysql
- INFORMATION_SCHEMA
- 概要
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_RULES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- TiDBダッシュボード
- 概要
- 管理
- アクセス
- 概要ページ
- クラスター情報ページ
- Top SQL
- キービジュアライザーページ
- メトリクス関係グラフ
- SQLステートメント分析
- 遅いクエリページ
- クラスター診断
- 検索ログページ
- インスタンスプロファイリング
- セッションの管理とConfiguration / コンフィグレーション
- FAQ
- CLI
- コマンドラインフラグ
- Configuration / コンフィグレーションファイルのパラメーター
- システム変数
- ストレージエンジン
- テレメトリー
- エラーコード
- テーブルフィルター
- トポロジラベルによるレプリカのスケジュール
- よくある質問
- リリースノート
- すべてのリリース
- リリースタイムライン
- TiDBバージョニング
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 用語集
重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。
SQLモード
TiDBサーバーはさまざまなSQLモードで動作し、これらのモードをクライアントごとに異なる方法で適用します。 SQLモードは、以下に説明するように、TiDBがサポートするSQL構文と、実行するデータ検証チェックのタイプを定義します。
TiDBの起動後、 SET [ SESSION | GLOBAL ] sql_mode='modes'
を変更してSQLモードを設定します。
SQLモードをGLOBAL
レベルで設定する場合は、 SUPER
の特権があることを確認してください。このレベルでの設定は、後で確立される接続にのみ影響します。 SESSION
レベルでのSQLモードへの変更は、現在のクライアントにのみ影響します。
Modes
は、コンマ('、')で区切られた一連の異なるモードです。 SELECT @@sql_mode
ステートメントを使用して、現在のSQLモードを確認できます。 SQLモードのデフォルト値: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
。
重要なsql_mode
値
ANSI
:このモードは標準SQLに準拠しています。このモードでは、データがチェックされます。データが定義されたタイプまたは長さに準拠していない場合、データタイプは調整またはトリミングされ、warning
が返されます。STRICT_TRANS_TABLES
:データが厳密にチェックされる厳密モード。誤ったデータがテーブルに挿入されると、エラーが返されます。TRADITIONAL
:このモードでは、TiDBは「従来の」SQLデータベースシステムのように動作します。誤った値が列に挿入されると、警告ではなくエラーが返されます。次に、INSERT
またはUPDATE
ステートメントはすぐに停止されます。
SQLモードテーブル
名前 | 説明 |
---|---|
PIPES_AS_CONCAT | 「 |
ANSI_QUOTES | " を識別子として扱います。 ANSI_QUOTES が有効になっている場合、一重引用符のみが文字列リテラルとして扱われ、二重引用符は識別子として扱われます。したがって、二重引用符を使用して文字列を引用することはできません。 (フルサポート) |
IGNORE_SPACE | このモードが有効になっている場合、システムはスペースを無視します。例:「user」と「user」は同じです。 (フルサポート) |
ONLY_FULL_GROUP_BY | SELECT 、またはHAVING で参照される非集約列がORDER BY に存在しない場合、このSQLステートメントは無効です。これは、列がGROUP BY に存在しGROUP BY が、クエリによって表示されるのは異常であるためです。 (フルサポート) |
NO_UNSIGNED_SUBTRACTION | オペランドに減算の記号がない場合、結果をUNSIGNED としてマークしません。 (フルサポート) |
NO_DIR_IN_CREATE | テーブルの作成時に、 INDEX DIRECTORY およびDATA DIRECTORY のディレクティブをすべて無視します。このオプションは、セカンダリレプリケーションサーバーでのみ役立ちます(構文サポートのみ)。 |
NO_KEY_OPTIONS | SHOW CREATE TABLE ステートメントを使用する場合、 ENGINE などのMySQL固有の構文はエクスポートされません。 mysqldumpを使用してDBタイプ間で移行する場合は、このオプションを検討してください。 (構文サポートのみ) |
NO_FIELD_OPTIONS | SHOW CREATE TABLE ステートメントを使用する場合、 ENGINE などのMySQL固有の構文はエクスポートされません。 mysqldumpを使用してDBタイプ間で移行する場合は、このオプションを検討してください。 (構文サポートのみ) |
NO_TABLE_OPTIONS | SHOW CREATE TABLE ステートメントを使用する場合、 ENGINE などのMySQL固有の構文はエクスポートされません。 mysqldumpを使用してDBタイプ間で移行する場合は、このオプションを検討してください。 (構文サポートのみ) |
NO_AUTO_VALUE_ON_ZERO | このモードが有効になっている場合、 AUTO_INCREMENT 列に渡される値が0 または特定の値であると、システムはこの値をこの列に直接書き込みます。 NULL が渡されると、システムは自動的に次のシリアル番号を生成します。 (フルサポート) |
NO_BACKSLASH_ESCAPES | このモードが有効になっている場合、 \ の円記号はそれ自体を表すだけです。 (フルサポート) |
STRICT_TRANS_TABLES | トランザクションストレージエンジンの厳密モードを有効にし、不正な値が挿入された後、ステートメント全体をロールバックします。 (フルサポート) |
STRICT_ALL_TABLES | トランザクションテーブルの場合、不正な値が挿入された後、トランザクションステートメント全体をロールバックします。 (フルサポート) |
NO_ZERO_IN_DATE | 月または日の部分が0 の日付は受け入れられない厳密モード。 IGNORE オプションを使用する場合、TiDBは同様の日付に「0000-00-00」を挿入します。非厳密モードでは、この日付は受け入れられますが、警告が返されます。 (フルサポート) |
NO_ZERO_DATE | 厳密モードでは、有効な日付として「0000-00-00」を使用しません。 IGNORE オプションを使用しても、ゼロの日付を挿入できます。非厳密モードでは、この日付は受け入れられますが、警告が返されます。 (フルサポート) |
ALLOW_INVALID_DATES | このモードでは、システムはすべての日付の有効性をチェックしません。 1 から12 の範囲の月の値と1 から31 の範囲の日付の値のみをチェックします。このモードは、 DATE 列とDATATIME 列にのみ適用されます。 TIMESTAMP 列すべてに完全な妥当性チェックが必要です。 (フルサポート) |
ERROR_FOR_DIVISION_BY_ZERO | このモードが有効になっている場合、データ変更操作( INSERT またはUPDATE )で0 による除算を処理すると、システムはエラーを返します。このモードが有効になっていない場合、システムは警告を返し、代わりに NULL が使用されます。 (フルサポート) |
NO_AUTO_CREATE_USER | 指定されたパスワードを除いて、 GRANT が新しいユーザーを自動的に作成しないようにします(完全サポート) |
HIGH_NOT_PRECEDENCE | NOT演算子の優先順位は、 NOT a BETWEEN b AND c などの式がNOT (a BETWEEN b AND c) として解析されるようなものです。 MySQLの一部の古いバージョンでは、この式は(NOT a) BETWEEN b AND c として解析されます。 (フルサポート) |
NO_ENGINE_SUBSTITUTION | 必要なストレージエンジンが無効になっているか、コンパイルされていない場合に、ストレージエンジンが自動的に置き換えられないようにします。 (構文サポートのみ) |
PAD_CHAR_TO_FULL_LENGTH | このモードが有効になっている場合、システムはCHAR のタイプの末尾のスペースをトリミングしません。 (構文サポートのみ。このモードはMySQL8.0で非推奨になっています。) |
REAL_AS_FLOAT | REAL をDOUBLE の同義語ではなく、 FLOAT の同義語として扱います(完全サポート) |
POSTGRESQL | PIPES_AS_CONCAT NO_FIELD_OPTIONS ANSI_QUOTES ( IGNORE_SPACE NO_KEY_OPTIONS NO_TABLE_OPTIONS ) |
MSSQL | PIPES_AS_CONCAT NO_FIELD_OPTIONS ANSI_QUOTES ( IGNORE_SPACE NO_KEY_OPTIONS NO_TABLE_OPTIONS ) |
DB2 | PIPES_AS_CONCAT NO_FIELD_OPTIONS ANSI_QUOTES ( IGNORE_SPACE NO_KEY_OPTIONS NO_TABLE_OPTIONS ) |
MAXDB | PIPES_AS_CONCAT NO_TABLE_OPTIONS ANSI_QUOTES NO_FIELD_OPTIONS IGNORE_SPACE NO_KEY_OPTIONS NO_AUTO_CREATE_USER |
MySQL323 | NO_FIELD_OPTIONS にHIGH_NOT_PRECEDENCE (構文サポートのみ) |
MYSQL40 | NO_FIELD_OPTIONS にHIGH_NOT_PRECEDENCE (構文サポートのみ) |
ANSI | REAL_AS_FLOAT にPIPES_AS_CONCAT ( ANSI_QUOTES IGNORE_SPACE のみ) |
TRADITIONAL | STRICT_TRANS_TABLES NO_AUTO_CREATE_USER STRICT_ALL_TABLES ( NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO ) |
ORACLE | PIPES_AS_CONCAT NO_FIELD_OPTIONS ANSI_QUOTES NO_AUTO_CREATE_USER IGNORE_SPACE NO_KEY_OPTIONS NO_TABLE_OPTIONS ) |
このページの内容