01 非表示の列を作成する非表示の列を作成するには: テーブル `t2` を作成します ( `id` int NOT NULL AUTO_INCREMENT、 `name` varchar(20) デフォルト NULL, `age` int デフォルト NULL 非表示、 主キー (`id`) ) エンジン=InnoDB デフォルト文字セット=utf8mb4 照合=utf8mb4_0900_ai_ci ご覧のとおり、SQL でテーブル t2 が作成され、id、name、age などのフィールドが含まれています。このうち、age フィールドには、invisible 属性が設定されています。 もちろん、alter table 構文を使用して非表示の列を作成し、非表示のスコア フィールドを t2 テーブルに追加することもできます。 mysql> テーブル t2 を変更して、スコア int を非表示に追加します。 クエリは正常、影響を受けた行は 0 行 (0.05 秒) レコード: 0 重複: 0 警告: 0 create table のような構文は、非表示のフィールドと完全に互換性がありますか?答えはイエスです。 mysql> テーブル t1\G の作成を表示します ************************** 1. 行 **************************** 表: t1 テーブルの作成: CREATE TABLE `t1` ( `id` int NOT NULL AUTO_INCREMENT、 `name` varchar(20) デフォルト NULL, `age` int デフォルト NULL /*!80023 非表示 */, 主キー (`id`) ) エンジン=InnoDB AUTO_INCREMENT=2 デフォルト文字セット=utf8mb4 COLLATE=utf8mb4_0900_ai_ci セット内の 1 行 (0.00 秒) mysql> t1 のようなテーブル t3 を作成します。 クエリは正常、影響を受けた行は 0 行 (0.09 秒) mysql> テーブル t3\G の作成を表示します ************************** 1. 行 **************************** 表: t3 テーブルの作成: CREATE TABLE `t3` ( `id` int NOT NULL AUTO_INCREMENT、 `name` varchar(20) デフォルト NULL, `age` int デフォルト NULL /*!80023 非表示 */, 主キー (`id`) ) エンジン=InnoDB デフォルト文字セット=utf8mb4 照合=utf8mb4_0900_ai_ci セット内の 1 行 (0.00 秒) create table as の構文では、デフォルトでは非表示の列は保持されません。この列を保持する場合は、次の方法を使用します。 02 非表示の列に対する基本操作t1 という名前のテーブルを作成します。このテーブルには、id、name、age の 3 つのフィールドが含まれています。age フィールドは非表示です。基本的な操作をいくつか見てみましょう。 mysql> t1 に値を挿入します (1,'zhangsan',10); エラー 1136 (21S01): 列数が行 1 の値数と一致しません mysql> t1 (id,name,age) に値 (1,'zhangsan',10) を挿入します。 クエリは正常、1 行が影響を受けました (0.01 秒) mysql> t1 から * を選択します。 +----+----------+ | ID | 名前 | +----+----------+ | 1 | 張さん | +----+----------+ セット内の 1 行 (0.00 秒) まず、3 つのフィールドを含むテーブル t1 にレコードを挿入します。列の数が一致しないというエラー メッセージが表示されます。 次に、挿入するときに、対応するフィールドを追加し、挿入が正常であることを確認します。 ただし、select * 構文を使用してクエリを実行すると、クエリ結果には id と name の 2 つの列しかないことがわかります。非表示の列 age はデフォルトでは表示されません。 もちろん、select を使用してこの列を明示的に表示することもできます。 mysql> t1 から id、name、age を選択します。 +----+----------+------+ | ID | 名前 | 年齢 | +----+----------+------+ | 1 | 張さん | 10 | +----+----------+------+ セット内の 1 行 (0.00 秒) 03 非表示の列メタデータinformation_schema を使用して列が非表示の列であるかどうかを確認するか、desc + table_name コマンドを使用することができます。次のように: ここで、TABLE_SCHEMA = 'test'、TABLE_NAME = 't1'; +------------+-------------+------------+ | テーブル名 | 列名 | 追加 | +------------+-------------+------------+ | t1 | 私 | | | t1 | j | | | t1 | k | 非表示 | +------------+-------------+------------+ mysql> desc test.t1; +-------+-------------+------+-----+---------+----------------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +-------+-------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | 名前 | varchar(20) | はい | | NULL | | | 年齢 | int | はい | | NULL | 非表示 | +-------+-------------+------+-----+---------+----------------+ セット内の 3 行 (0.00 秒) 04 主キーIDとして使用次の例を見てください。主キー ID を非表示の列として設定することで、ID 列を気にして非表示にすることなく、テーブルのデータ コンテンツに関連するフィールドに集中できるようになります。 mysql> テストを使用する テーブル名と列名の補完のためのテーブル情報の読み取り -Aでこの機能をオフにすると起動が速くなります。 データベースが変更されました mysql> テーブル t4 を作成します (id int not null auto_increment primary key invisible,name varchar(20),age int ); クエリは正常、影響を受けた行は 0 行 (0.07 秒) mysql> t4 に値 ('zhangsan'、10)、('lisi'、15) を挿入します。 クエリは正常、2 行が影響を受けました (0.01 秒) 記録: 2 重複: 0 警告: 0 mysql> t4 から * を選択します。 +----------+------+ | 名前 | 年齢 | +----------+------+ | 張さん | 10 | | リシ | 15 | +----------+------+ セット内の 2 行 (0.00 秒) この方法には大きな利点があります。ビジネス用に設計されたテーブルに主キーがない場合、DBA は間違いなくこのテーブル構造を許可しません。その後、DBA はビジネス ロジックを変更せずに、非表示の列に主キーを設定してこのテーブルの問題を解決できます。 以上がMySQL 8.0の非表示列の基本操作の詳細内容です。MySQL 8.0の非表示列の詳細については、123WORDPRESS.COMの他の関連記事にご注目ください。 以下もご興味があるかもしれません:
|
<<: Web ページ制作におけるテーブル属性 CellPad、CellSpace、Border の説明と使用
私のおすすめ複数のIEバージョンの共存のためのソリューション以前に IE6、IE7、IE8 の共存に...
1. csvファイルをインポートする次のコマンドを使用します。 1.mysql> infile...
目次最初に要約: 🌲🌲 序文: 🍬🍬公開🍬🍬 🍬🍬グローバル🍬🍬 🍬🍬ボールボックス🍬🍬 🎉🎉🎉結論...
目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...
よく使用されるデータベースである MySQL では、多くの操作が必要です。デジタル操作には非常に便利...
目次序文1. batがjsを実行する2. ターミナルにバージョン番号を入力してパッケージ化コマンドを...
目次1. 使用方法1. 基本的な使い方2. 2番目のパラメータ - フィルター3. 3番目のパラメー...
目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...
序文MySQL で show create table <tablename> コマンド...
最も一般的で、最もよく使用され、最も一般的な方法は、submit タイプを使用することです。コードを...
今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...
目次1. セットとは何か2. セットコンストラクタ2.1) 配列2.2) 文字列2.3) 議論2.4...
背景最近、オンライン操作中に DML ステートメントを実行しました。これは絶対確実だと思っていました...
この記事では、mysql5.7.23 の詳細なインストールプロセスを記録し、皆さんと共有します。 1...
DockerデーモンソケットDocker デーモンは、 unix 、 tcp 、 fdの 3 種類の...