Apakah MySQL GENERATED COLUMN dan cara menggunakannya semasa membuat jadual?

王林
Lepaskan: 2023-09-12 18:29:12
ke hadapan
1286 orang telah melayarinya

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

Lajur yang dijana pada asasnya ialah ciri yang boleh digunakan dalam kenyataan CREATE TABLE atau ALTER TABLE dan merupakan cara untuk menyimpan data tanpa benar-benar menghantar data melalui klausa INSERT atau UPDATE dalam SQL. Ciri ini telah ditambah dalam MySQL 5.7. Lajur yang dijana berfungsi dalam medan jadual. Sintaksnya adalah seperti berikut -

Syntax

column_name data_type [GENERATED ALWAYS] AS (expression)
[VIRTUAL | STORED] [UNIQUE [KEY]]
Salin selepas log masuk

Di sini, nyatakan nama lajur dan jenis datanya dahulu.

  • Kemudian tambah klausa GENERATED ALWAYS untuk menunjukkan bahawa lajur ialah lajur yang dijana.
  • Kemudian, gunakan pilihan yang sesuai untuk menunjukkan jenis lajur yang dijana - MAYA atau DISIMPAN. Secara lalai, MySQL menggunakan VIRTUAL jika anda tidak menyatakan secara eksplisit jenis lajur yang dijana. Selepas

, nyatakan ungkapan dalam kurungan kerinting selepas kata kunci AS. Ungkapan boleh mengandungi literal, fungsi terbina dalam tanpa parameter, pengendali atau rujukan kepada mana-mana lajur dalam jadual yang sama. Jika fungsi digunakan, ia mestilah skalar dan deterministik.

Akhir sekali, jika anda menyimpan lajur yang dijana, anda boleh menentukan kekangan unik untuknya.

Contoh

Dalam contoh ini, kami mencipta jadual bernama employee_data yang mengandungi butiran pekerja bersama-sama dengan lajur yang dijana seperti yang ditunjukkan di bawah -

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)
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah MySQL GENERATED COLUMN dan cara menggunakannya semasa membuat jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!