MySQL の他の列に基づいて列を効率的に計算する方法
MySQL 5.7.6 以降では、生成されたカラム (生成されたカラム) が導入されています。これは、同じテーブル内の既存のカラムに基づいて新しいカラムの値を自動的に計算する効率的な方法です。ビューとは異なり、生成された列はテーブル定義の一部であり、ソース列が変更されると自動的に更新されます。
仮想生成列と保存された生成列
生成された列は仮想または保存できます:
この場合、新しいレコードが挿入されるか、既存のレコードが更新されたときに計算値をすぐに利用できる必要があるため、生成された列を保存する方が適切です。
ストレージを使用した生成列の実装
テーブルに price
と quantity
の 2 つの列があり、値が amount
と price
の積である新しい列 quantity
を追加するとします。ストレージで生成された列は、次の SQL ステートメントを使用して作成できます:
<code class="language-sql">CREATE TABLE order_details ( price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity) STORED );</code>
列が作成されると、amount
が自動的に計算され、テーブル内の各行に保存されます。 price
または quantity
に変更を加えると、amount
の更新がトリガーされます。
テーブルデータを含む例
サンプル データを挿入した後:
<code class="language-sql">INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);</code>
テーブルは次のようになります:
id | price | quantity | amount |
---|---|---|---|
1 | 100 | 1 | 100 |
2 | 300 | 4 | 1200 |
3 | 60 | 8 | 480 |
amount
列は必要に応じて自動的に入力および更新されるため、計算された値に効率的にアクセスできます。
以上がMySQL の他の列に基づいて列を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。