当前位置: 首页 > news >正文

门户网站的营销方式/最新国内新闻50条简短

门户网站的营销方式,最新国内新闻50条简短,猎头网站模板,得到做网站公司PostgreSQL 12 增加新的特性——生成列(Generated Columns),也就是计算列。在之前版本也可以实现,但需要定义函数和触发器,利用该功能可以更容易使用并可以提升性能。 生成列是给表指定计算列,其数据可以根据其他列数据自动生成&a…

PostgreSQL 12 增加新的特性——生成列(Generated Columns),也就是计算列。在之前版本也可以实现,但需要定义函数和触发器,利用该功能可以更容易使用并可以提升性能。

生成列是给表指定计算列,其数据可以根据其他列数据自动生成,当原数据更新时其自动更新。

PostgreSQL 12+ 生成列介绍

在PostgreSQL 12+中生成列作为内置功能,可以在创建或修改表时指定列作为生成列,指定其内容通过表达式自动填充,可以为简单基于其他进行数学运算,或更复杂的函数。其优势包括:

  • 无需在插入或修改操作时需要应用代码负责生成数据,生成列作为计算列自动实现。
  • 在频繁的select语句避免计算处理时间。因为插入或修改时计算列已经填充,因此查询无需临时计算,但需要额外空间进行存储。
  • 因为更新原数据时,生成列数据自动更新,因此计算列的值正确性有了保障。

在PostgreSQL 12+中仅STORED类型生成列有效。其他数据库类型,VIRTUAL类型的生成列也有效,该实现更类似于视图方式实现,在数据返回时进行实时计算。这里不讨论两者的优劣,业务未来版本会支持两种方式。

生成列示例

下面创建表演示生成列。我们指定计算列自动计算利润,依据销售价格和采购价格,公示为:

profit = ((sale_price - purchase_price) * quantity_sold)

创建交易表 transactions

CREATE TABLE public.transactions (transactions_sid serial primary key, transaction_date timestamp with time zone DEFAULT now() NOT NULL, product_name character varying NOT NULL, purchase_price double precision NOT NULL, sale_price double precision NOT NULL, quantity_sold integer NOT NULL, profit double precision NOT NULL GENERATED ALWAYS AS  ((sale_price - purchase_price) * quantity_sold) STORED 
);

插入示例数据,假设交易表存储咖啡店的交易信息:

INSERT INTO public.transactions (product_name, purchase_price, sale_price, quantity_sold) VALUES ('House Blend Coffee', 5, 11.99, 1);INSERT INTO public.transactions (product_name, purchase_price, sale_price, quantity_sold) VALUES ('French Roast Coffee', 6, 12.99, 4);INSERT INTO public.transactions (product_name, purchase_price, sale_price, quantity_sold) VALUES ('BULK: House Blend Coffee, 10LB', 40, 100, 6);SELECT * FROM public.transactions;

返回结果:

transactions_sidtransaction_dateproduct_namepurchase_pricesale_pricequantity_soldprofit
12021-09-13 17:06:12House Blend Coffee5.011.9916.99
22021-09-13 17:06:12French Roast Coffee6.012.99427.96
32021-09-13 17:06:12BULK: House Blend Coffee, 10LB40.0100.06360.0

我们更新数据验证是否会自动变化:

UPDATE public.transactions SET sale_price = 95 WHERE transactions_sid = 3;SELECT * FROM public.transactions;

返回结果:

transactions_sidtransaction_dateproduct_namepurchase_pricesale_pricequantity_soldprofit
12021-09-13 17:06:12House Blend Coffee5.011.9916.99
22021-09-13 17:06:12French Roast Coffee6.012.99427.96
32021-09-13 17:06:12BULK: House Blend Coffee, 10LB40.095.06330.0

于期望一致,这种机制确保计算列值的正确性,无需额外的应用程序代码负责实现。

注意:计算列(生成列)不能被直接插入或更新,否则会返回错误。

总结

本文介绍了PostgreSQL 12+ 生成列,可以方便实现计算列。如何使用之前版本,则需要自定义触发器予以实现。

http://www.lbrq.cn/news/1095445.html

相关文章:

  • 如何搜索易思cms做的网站/seo怎样才能优化网站
  • 为诈骗团伙做网站/网站需要怎么优化比较好
  • 莆田做外贸网站/百度服务中心人工客服
  • 用来网站备案注册什么公司好/威海seo
  • 结构设计网站/站长之家站长工具综合查询
  • 去什么网站做推广/百度上做优化
  • 做照片有那些网站/网络营销的四种方式
  • 酒类网站建设方案/合肥关键词排名
  • filetype ppt 网站建设/手机优化软件哪个好
  • 网站使用cookies/搜狗营销
  • wordpress的链接功能/东莞seo黑帽培训
  • 游戏网站banner怎么做/营销网站优化推广
  • 钓鱼网站的制作教程/如何做网络推广赚钱
  • 网站建设ppt/网站优化排名首页
  • 女人和男人做爰网站/东莞网站制作十年乐云seo
  • 网站如何在360做提交/网络营销服务企业
  • wordpress程序模板源码/苏州seo排名公司
  • wordpress 主题课堂/长春网站建设方案优化
  • 做网站实现图片自动压缩/如何搭建自己的网站
  • 免费建设个人手机网站/五年级上册语文优化设计答案
  • 企业网站托管服务公司/武汉seo首页优化技巧
  • 苍山网站建设/百度关键词价格怎么查询
  • 网站备案的坏处/seo排名点击软件
  • wordpress主标题副标题/石家庄百度快照优化排名
  • 陕西富国建设工程有限公司网站/百度推广客户端app下载
  • 向日葵视频在线免费观看/sem与seo的区别
  • 天津单位网站建设/b站推广形式
  • 帮做ppt网站/专业网络推广
  • 大学做网站/软文营销常用的方式是什么
  • 网站首页设计定位/数据分析师培训需要多少钱
  • vue3核心语法
  • Linux命令基础完结篇
  • langchain+本地embedding模型+milvus实现RAG
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——4. 前后端联动:打通QML与C++的任督二脉
  • opencv学习(图像处理)
  • 使用JMeter进行压力测试(以黑马点评为例、详细图解)