午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL 8.0 之不可見列的基本操作

瀏覽:182日期:2023-10-02 17:03:50
目錄01 創(chuàng)建不可見列02 不可見列基本操作03 不可見列元信息04 用作主鍵id01 創(chuàng)建不可見列

創(chuàng)建不可見列:

CREATE TABLE `t2` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `age` int DEFAULT NULL INVISIBLE, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

可以看到,我們的SQL里面創(chuàng)建了一個表t2的字段有id、name和age,其中,age字段設(shè)置了不可見屬性。

當(dāng)然,我們可以使用alter table的語法來創(chuàng)建一個不可見列,給t2表中,添加一個score的不可見字段

mysql> alter table t2 add score int invisible;Query OK, 0 rows affected (0.05 sec)Records: 0 Duplicates: 0 Warnings: 0

create table like 的語法能不能完美兼容invisible字段呢?答案是可以的。

mysql> show create table t1G*************************** 1. row ***************************Table: t1Create Table: CREATE TABLE `t1` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,`age` int DEFAULT NULL /*!80023 INVISIBLE */,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec)mysql> create table t3 like t1;Query OK, 0 rows affected (0.09 sec)mysql> show create table t3G*************************** 1. row ***************************Table: t3Create Table: CREATE TABLE `t3` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,`age` int DEFAULT NULL /*!80023 INVISIBLE */,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec)

而create table as的語法,默認(rèn)是不保留invisible列的,如果想保留這個列,請采用下面的方法:

02 不可見列基本操作

我們創(chuàng)建一個t1的表,包含id、name、age3個字段,其中,age字段是invisible的,下面來看幾個基本操作:

mysql> insert into t1 values (1,’zhangsan’,10);ERROR 1136 (21S01): Column count doesn’t match value count at row 1mysql> insert into t1 (id,name,age) values (1,’zhangsan’,10); Query OK, 1 row affected (0.01 sec)mysql> select * from t1;+----+----------+| id | name |+----+----------+| 1 | zhangsan |+----+----------+1 row in set (0.00 sec)

首先我們往表t1中插入1條記錄,它包含3個字段,發(fā)現(xiàn)報(bào)錯,提示列的數(shù)量不對應(yīng);

然后我們在插入的時候,補(bǔ)充對應(yīng)的字段,則發(fā)現(xiàn)插入正常了。

但是在使用select * 語法進(jìn)行查詢的時候,發(fā)現(xiàn)查詢的結(jié)果中,只有id 和name兩個列,對于age這個invisible的列,默認(rèn)是不顯示的。

當(dāng)然,我們可以顯示使用select來查看這個列:

mysql> select id,name,age from t1;+----+----------+------+| id | name | age |+----+----------+------+| 1 | zhangsan | 10 |+----+----------+------+1 row in set (0.00 sec)03 不可見列元信息

可以通過information_schema來查看某個列是否是不可見列,或者desc + table_name 的命令也可以。如下:

HERE TABLE_SCHEMA = ’test’ AND TABLE_NAME = ’t1’;+------------+-------------+-----------+| TABLE_NAME | COLUMN_NAME | EXTRA |+------------+-------------+-----------+| t1 | i | || t1 | j | || t1 | k | INVISIBLE |+------------+-------------+-----------+mysql> desc test.t1;+-------+-------------+------+-----+---------+----------------+| Field | Type| Null | Key | Default | Extra |+-------+-------------+------+-----+---------+----------------+| id | int | NO | PRI | NULL | auto_increment || name | varchar(20) | YES | | NULL ||| age | int | YES | | NULL | INVISIBLE |+-------+-------------+------+-----+---------+----------------+3 rows in set (0.00 sec)04 用作主鍵id

看下面這個例子,我們設(shè)置主鍵id為不可見列,這樣我們將更多的精力放在表的數(shù)據(jù)內(nèi)容相關(guān)的字段上,而不必去關(guān)心id列,將它隱藏起來:

mysql> use testReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> create table t4 (id int not null auto_increment primary key invisible,name varchar(20),age int );Query OK, 0 rows affected (0.07 sec)mysql> insert into t4 values (’zhangsan’,10),(’lisi’,15);Query OK, 2 rows affected (0.01 sec)Records: 2 Duplicates: 0 Warnings: 0mysql> select * from t4;+----------+------+| name | age |+----------+------+| zhangsan | 10 || lisi | 15 |+----------+------+2 rows in set (0.00 sec)

這種方法有一個很大的好處:假設(shè)業(yè)務(wù)設(shè)計(jì)的表沒有主鍵,這種表結(jié)構(gòu)DBA肯定不允許,那么DBA就可以在不修改業(yè)務(wù)邏輯的情況下,將主鍵設(shè)置成一個不可見列,來解決這個表的問題。

以上就是MySQL 8.0 之不可見列的基本操作的詳細(xì)內(nèi)容,更多關(guān)于MySQL 8.0 不可見列的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 欧美黄色大片免费观看 | 黄色片视频免费 | 性做爰过程免费播放 | av成人精品| 五月婷婷伊人网 | 在线中文字幕一区 | 网址av| 亚洲免费视频网 | 国产一级免费观看 | 亚洲图片中文字幕 | 欧美日韩欧美 | 91久久久久久久久久久久久 | 国产一区二区三区高清视频 | 踩踏天堂| 日本色中色 | 黄色天天影视 | 美女视频一区二区三区 | 在线日韩欧美 | 日韩日日夜夜 | 99精品久久久久久 | 99精品国产99久久久久久97 | 色小说av | 久久精品国产99 | 亚洲一级片在线播放 | 一区二区三区国产在线 | 亚洲一区二区三区中文字幕 | 国产一区二区免费视频 | 亚洲国产毛片 | 我想看毛片 | 91碰碰| 天堂自拍| 四虎影院最新 | 天天插天天操天天干 | 2020av| 婷婷91| 99久久久久成人国产免费 | 探花av在线| 在线成人观看 | 超碰520| 天堂网在线资源 | 国产又粗又大又长 |