首頁 > 資料庫 > mysql教程 > MySQL中如何根據另一列自動計算一列?

MySQL中如何根據另一列自動計算一列?

DDD
發布: 2025-01-17 07:51:18
原創
736 人瀏覽過

How Can I Automatically Calculate a Column Based on Another Column in MySQL?

MySQL 中基於另一列自動計算欄位

在資料庫程式設計領域,表格是資料儲存的基石,但有時需要從現有欄位中匯出附加資訊。這就是計算列發揮作用的地方,它提供了一種建立新列的方法,這些新列的值會根據另一列自動更新。

資料庫設定

考慮以下表格:

<code>id | value
--------------
1     6
2     70</code>
登入後複製

問題陳述

任務是新增一個名為「calculated」的列,該列是「value」列的一半。當“value”列變更時,此計算列應自動更新。

解:產生欄位

MySQL 5.7.6 及更高版本引進了名為「生成列」的功能。這些列允許根據現有列進行動態計算,類似於視圖,但作為表的一個組成部分。

生成列有兩種:

  • 虛擬 (預設): 從表格讀取記錄時即時計算。
  • 儲存: 在表格中插入或更新新記錄時計算。

實作

在本例中,我們將使用儲存的生成列。以下是加入它的 SQL 語句:

<code>ALTER TABLE table_name ADD COLUMN calculated AS (value / 2) STORED;</code>
登入後複製

這將建立一個名為「calculated」的新列,其值為每一行的「value」列的一半。

優點和注意事項

生成列具有以下優點:

  • 自動更新: 當來源列變更時,計算列會自動更新,確保值始終準確。
  • 可索引: 儲存的產生欄位可用作索引的一部分,從而提高查詢效能。
  • NOT NULL 限制: 虛擬和儲存的生成列都可以具有 NOT NULL 限制,從而確保資料完整性。

範例

新增計算列後,表格將如下所示:

<code>id | value | calculated
-----------------------
1     6       3
2     70      35</code>
登入後複製

結論

產生列提供了一種向表新增計算列的強大方法。透過利用「stored」選項,它確保計算列自動更新並可以建立索引,從而在資料管理中提供更高的靈活性和效率。

以上是MySQL中如何根據另一列自動計算一列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板