老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

怎么使用PostgreSQL12中的generatedcolumns-創新互聯

這篇文章主要介紹“怎么使用PostgreSQL 12中的generated columns”,在日常操作中,相信很多人在怎么使用PostgreSQL 12中的generated columns問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用PostgreSQL 12中的generated columns”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創新互聯長期為上千余家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為防城企業提供專業的網站設計制作、成都做網站防城網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。

在其他數據庫中,generated columns又被成為計算列(calculated columns)/虛擬列(virtual columns)等.

簡介
在PG 11或以前的版本中,generated columns是不支持的:

testdb=# drop table if exists t_generated_col;
NOTICE:  table "t_generated_col" does not exist, skipping
DROP TABLE
testdb=# create table t_generated_col
testdb-# (n1 int,
testdb(#  n2 int,
testdb(#  c1 varchar(10),
testdb(#  c2 varchar(10),
testdb(#  counter int generated always as (n1 + n2) stored,
testdb(#  link varchar(20) generated always as (c1 || c2) stored);
ERROR:  syntax error at or near "("
LINE 6:  counter int generated always as (n1 + n2) stored,
                                         ^

counter列的值由n1和n2相加而得,而link列的值有c1和c2拼接而得.
在PG 12中,可以支持generated columns

testdb=# drop table if exists t_generated_col;
psql: NOTICE:  table "t_generated_col" does not exist, skipping
DROP TABLE
testdb=# create table t_generated_col
testdb-# (n1 int,
testdb(#  n2 int,
testdb(#  c1 varchar(10),
testdb(#  c2 varchar(10),
testdb(#  counter int generated always as (n1 + n2) stored,
testdb(#  link varchar(20) generated always as (c1 || c2) stored);
CREATE TABLE
testdb=# insert into  t_generated_col(n1,n2,c1,c2) values(1,1,'c1','c2');
INSERT 0 1
testdb=# 
testdb=# select * from t_generated_col;
 n1 | n2 | c1 | c2 | counter | link 
----+----+----+----+---------+------
  1 |  1 | c1 | c2 |       2 | c1c2
(1 row)

生成列的值由表達式的值計算而得,如為null則為null:

testdb=# insert into  t_generated_col(n1,n2,c1,c2) values(1,null,'c1',null);
INSERT 0 1
testdb=# select * from t_generated_col;
 n1 | n2 | c1 | c2 | counter | link 
----+----+----+----+---------+------
  1 |  1 | c1 | c2 |       2 | c1c2
  1 |    | c1 |    |         | 
(2 rows)

生成列不能被update:

testdb=# update t_generated_col set counter = 10;
psql: ERROR:  column "counter" can only be updated to DEFAULT
DETAIL:  Column "counter" is a generated column.

可以創建在其上創建index:

testdb=# create index idx_t_generated_col_counter on t_generated_col(counter);
CREATE INDEX

執行查詢時,跟普通列沒有什么區別:

  ^
testdb=# insert into  t_generated_col(n1,n2) select x,0 from generate_series(1,10000) x;
INSERT 0 10000
testdb=# 
testdb=# explain select * from t_generated_col where counter = 1000;
                                             QUERY PLAN                                             
----------------------------------------------------------------------------------------------------
 Index Scan using idx_t_generated_col_counter on t_generated_col  (cost=0.29..8.30 rows=1 width=23)
   Index Cond: (counter = 1000)
(2 rows)

到此,關于“怎么使用PostgreSQL 12中的generated columns”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯-成都網站建設公司網站,小編會繼續努力為大家帶來更多實用的文章!


網站欄目:怎么使用PostgreSQL12中的generatedcolumns-創新互聯
文章路徑:http://www.xueling.net.cn/article/dcojee.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 色爱区成人综合网 | 久久亚洲春色中文字幕久久久 | 在线中文字幕一区 | 亚洲欧美日韩国产综合在线 | 粗大黑人巨精大战欧美成人 | 国产成人羞羞视频在线 | 久久久久久久久久亚洲 | 中国少妇无码专区 | 日本一区免费在线 | 欧美一区二区三区四区五区动图 | 91色噜噜狠狠狠狠色综合 | 成年美女色黄网站视频网站 | 久久最新精品 | 久久99精品久久水蜜桃 | 18禁超污无遮挡无码免费应用 | 免费日本在线观看 | 在线免费观看麻豆 | 一性一交一伦一色一按—摩 | 台湾佬亚洲 | AV无码人妻一区二区三区牛牛 | 91免费 | 国产亚洲欧美日韩俺去了 | 欧美人妻体内射射 | 天天有好逼 | 免费精品国偷自产在线青年 | 婷婷性多多影院 | 免费无码av片在线观看 | 国产成人精品一区二区尿失禁 | 亚洲香蕉在线观看 | 中文字幕制服亚洲另类 | 欧美精品国产综合久久 | 国产精品爽爽爽爽爽爽在线观看 | 国产看片网址最新在线 | 清清草在线视频 | av在线播放一区二区 | 色欲色欲日韩WWW在线观看 | 欧美亚洲另类久久综合二区 | 91成人国产 | 又大又长粗又爽又黄少妇视频 | 国产精品视频1区2区3区 | 黄页在线观看视频 |