色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql generated

李中冰2年前12瀏覽0評論

MySQL 的 GENERATED 特性是用來創建自動生成值的列定義的。這些值可以是整數、浮點數或日期。GENERATED 特性可以定義為存儲虛擬(計算所得)列或存儲為實際物理列。

在創建表時,GENERATED 選項可以用于指定列的自動生成。具體地,可以使用以下兩種不同類型的 GENERATED:

  • ALWAYS - 每次插入新行時,都會自動生成列的值;
  • BY DEFAULT - 只有在插入新行時未指定列值時才會自動生成列的值。

下面是一個使用 GENERATED ALWAYS AS 表達式的例子:

CREATE TABLE student_data (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
date_of_birth DATE,
age INT GENERATED ALWAYS AS (YEAR(CURDATE()) - YEAR(date_of_birth)) STORED
);

這個表定義了一個名為 student_data 的表,其中包含 id、name、date_of_birth 和 age 四個列。其中,id 是 PRIMARY KEY,它的值將自動生成。date_of_birth 是必需輸入的值,它將用于計算 age 的值。age 是 GENERATED ALWAYS 列,它的值將自動生成并存儲。這里,我們使用 YEAR 函數計算學生的年齡。

可以通過 INSERT 語句向 student_data 表添加新行,如下所示:

INSERT INTO student_data (name, date_of_birth) VALUES ('Tom', '1999-06-05');
INSERT INTO student_data (name, date_of_birth) VALUES ('Jerry', '2001-03-12');

當添加這些行時,age 將自動計算并存儲到表中:

mysql>SELECT * FROM student_data;
+----+-------+---------------+------+
| id | name  | date_of_birth | age   |
+----+-------+---------------+------+
|  1 | Tom   | 1999-06-05    |   22 |
|  2 | Jerry | 2001-03-12    |   20 |
+----+-------+---------------+------+

可以看到,age 列已經自動生成并存儲到表中。