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

什么是 mysql generated column 以及如何在创建表时使用它?

基本上生成的列是一项可在 CREATE TABLE 或 ALTER TABLE 语句中使用的功能,并且是一种存储数据的方式,而无需通过 SQL 中的 INSERT 或 UPDATE 子句实际发送数据。 MySQL 5.7 中添加了此功能。生成的列在表域内工作。其语法如下 –

语法

%ign%ignore_a_1%re_pre_1%

这里,首先指定列名及其数据类型。

然后添加 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 以及如何在创建表时使用它?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/104447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月21日 20:36:16
下一篇 2025年11月21日 20:51:32

相关推荐

发表回复

登录后才能评论
关注微信