首頁  >  文章  >  資料庫  >  什麼是 MySQL GENERATED COLUMN 以及如何在建立表格時使用它?

什麼是 MySQL GENERATED COLUMN 以及如何在建立表格時使用它?

王林
王林轉載
2023-09-12 18:29:121296瀏覽

什么是 MySQL GENERATED COLUMN 以及如何在创建表时使用它?

基本上產生的列是一項可在CREATE TABLE 或ALTER TABLE 語句中使用的功能,並且是一種儲存資料的方式,而無需透過SQL 中的INSERT 或UPDATE 子句實際傳送資料。 MySQL 5.7 中新增了此功能。產生的列在表域內工作。其語法如下 -

語法

column_name data_type [GENERATED ALWAYS] AS (expression)
[VIRTUAL | STORED] [UNIQUE [KEY]]

這裡,首先指定列名及其資料型別。

  • 然後新增 GENERATED ALWAYS 子句以指示該列是產生的列。
  • 然後,使用對應的選項指示產生列的類型 - VIRTUAL 或 STORED。預設情況下,如果您沒有明確指定產生列的類型,MySQL 將使用 VIRTUAL。

之後,在 AS 關鍵字後面的大括號內指定表達式。表達式可以包含文字、不帶參數的內建函數、運算子或對同一表中任何列的參考。如果使用函數,則它必須是標量和確定性的。

最後,如果儲存產生的列,則可以為其定義唯一約束。

範例

在此範例中,我們建立一個名為employee_data 的表,其中包含員工的詳細資訊以及產生的列,如下所示 -

mysql> Create table employee_data(ID INT AUTO_INCREMENT PRIMARY KEY, First_name VARCHAR(50) NOT NULL, Last_name VARCHAR(50) NOT NULL, FULL_NAME VARCHAR(90) GENERATED ALWAYS AS(CONCAT(First_name,' ',Last_name)));
Query OK, 0 rows affected (0.55 sec)

mysql> DESCRIBE employee_data;
+------------+-------------+------+-----+---------+-------------------+
| Field      | Type        | Null | Key | Default | Extra             |
+------------+-------------+------+-----+---------+-------------------+
| ID         | int(11)     | NO   | PRI | NULL    | auto_increment    |
| First_name | varchar(50) | NO   |     | NULL    |                   |
| Last_name  | varchar(50) | NO   |     | NULL    |                   |
| FULL_NAME  | varchar(90) | YES  |     | NULL    | VIRTUAL GENERATED |
+------------+-------------+------+-----+---------+-------------------+
4 rows in set (0.00 sec)

mysql> INSERT INTO employee_data(first_name, Last_name) values('Yashpal','Sharma');
Query OK, 1 row affected (0.09 sec)

mysql> INSERT INTO employee_data(first_name, Last_name) values('Krishan','Kumar');
Query OK, 1 row affected (0.09 sec)

mysql> INSERT INTO employee_data(first_name, Last_name) values('Rakesh','Arora');
Query OK, 1 row affected (0.08 sec)

mysql> Select * from employee_data;
+----+------------+-----------+----------------+
| ID | First_name | Last_name | FULL_NAME      |
+----+------------+-----------+----------------+
| 1  | Yashpal    | Sharma    | Yashpal Sharma |
| 2  | Krishan    | Kumar     | Krishan Kumar  |
| 3  | Rakesh     | Arora     | Rakesh Arora   |
+----+------------+-----------+----------------+
3 rows in set (0.00 sec)

以上是什麼是 MySQL GENERATED COLUMN 以及如何在建立表格時使用它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除