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

做风能的网站站长工具是什么

做风能的网站,站长工具是什么,网站怎么设计制作,英文b2c网站PostgreSQL Generated Columns 对应 Oracle 的实现方式 一、功能对标 PostgreSQL 的 Generated Columns(生成列)通过表达式自动计算列值,分为 STORED 类型(存储物理值)。该特性在 Oracle 中的对应实现为 虚拟列&#…

PostgreSQL Generated Columns 对应 Oracle 的实现方式


一、功能对标

PostgreSQL 的 Generated Columns(生成列)通过表达式自动计算列值,分为 STORED 类型(存储物理值)。该特性在 Oracle 中的对应实现为 虚拟列(Virtual Columns),但存在以下核心差异:

特性PostgreSQL Generated Columns (STORED)Oracle Virtual Columns (VIRTUAL)
存储方式物理存储计算结果不存储数据,查询时实时计算(仅存储表达式定义)
表达式限制仅支持不可变函数支持确定性函数(如 SYSDATE 受限)
索引支持可创建普通索引需显式创建函数索引或虚拟列索引
分区键应用不支持支持作为分区键

二、语法对比

PostgreSQL 示例(STORED 类型):

CREATE TABLE products (price numeric,quantity integer,total numeric GENERATED ALWAYS AS (price * quantity) STORED
);

Oracle 对应实现(VIRTUAL 类型):

CREATE TABLE products (price NUMBER,quantity NUMBER,total NUMBER GENERATED ALWAYS AS (price * quantity) VIRTUAL
);

关键点

  • Oracle 默认虚拟列不占用物理存储,若需持久化结果需额外设计(如触发器或物化视图)
  • Oracle 允许在虚拟列上创建索引,但需显式声明(如 CREATE INDEX idx_total ON products(total)

三、迁移适配方案

从 PostgreSQL 迁移到 Oracle 时,需根据场景选择以下方案适配生成列:

1. 直接映射虚拟列

适用于简单计算场景:

-- Oracle 实现总金额计算
ALTER TABLE products ADD total NUMBER GENERATED ALWAYS AS (price * quantity) VIRTUAL;
2. 触发器模拟存储值

当需要物理存储计算结果时(模拟 PostgreSQL 的 STORED):

CREATE OR REPLACE TRIGGER trg_calc_total 
BEFORE INSERT OR UPDATE ON products 
FOR EACH ROW
BEGIN:NEW.total := :NEW.price * :NEW.quantity;  -- 显式计算结果并存储
END;
3. 物化视图替代

高频查询但低更新频率场景:

CREATE MATERIALIZED VIEW mv_products 
REFRESH FAST ON COMMIT 
AS 
SELECT price, quantity, price*quantity AS total FROM products;  -- 定期刷新计算结果

四、注意事项
场景Oracle 适配建议
复杂表达式或跨表引用改用视图封装逻辑,或通过 PL/SQL 函数封装计算过程
性能敏感的高频查询在虚拟列上创建函数索引(如 CREATE INDEX idx_name ON table_name(expression))以提高查询效率
数据类型差异调整数值精度(如 PostgreSQL numeric 对应 Oracle NUMBER)和字符串处理(如 VARCHAR 长度限制)

典型差异案例

PostgreSQL 生成列

-- 包含字符串拼接
ALTER TABLE employees ADD full_name TEXT GENERATED ALWAYS AS (first_name || ' ' || last_name) STORED;

Oracle 对应实现

-- 需处理空值(Oracle 中 NULL 拼接返回 NULL)
ALTER TABLE employees ADD full_name VARCHAR2(100) 
GENERATED ALWAYS AS (NVL(first_name, '') || ' ' || NVL(last_name, '')) VIRTUAL;  -- 显式处理空值

版本支持

  • Oracle 11g+:全面支持虚拟列,但功能扩展性弱于 PostgreSQL
  • PostgreSQL 9.4+:仅支持 STORED 类型生成列,尚无 VIRTUAL 类型

通过上述方案可实现功能迁移,但需结合业务场景权衡实时性、存储成本与计算开销。

http://www.dtcms.com/wzjs/330148.html

相关文章:

  • 担路做网站网络营销专业大学排名
  • 做云词图的网站制作网站需要什么软件
  • com域名注册7元怎么关键词优化网站
  • 关于网站开发人员保密协议贵阳seo网站管理
  • 有哪些网站是免费学做网页的站长工具查询官网
  • 政府网站建设运行合作协议网络广告营销有哪些
  • 商洛网站制作seo搜索引擎推广
  • wordpress编辑主页seo的工作原理
  • 网站建设软文2024很有可能再次封城吗
  • wordpress新闻发布时间seo短视频网页入口引流免费
  • 织梦做中英文网站网络优化大师手机版
  • 日本签证那个网站做的好百度提问首页
  • 跨境电子商务网页制作与网站建设企业seo整站优化方案
  • 做转录组kog网站seo优化方案案例
  • 做网站是不是很麻烦神马站长平台
  • 网站可以称为系统吗海外建站
  • 选择网站做友情链接的标准一般是2023新闻大事10条
  • 做国外直播网站有哪些软文推广多少钱
  • 门户网站系统有哪些平台网络营销的八大能力
  • 网站收录情况查询网络市场营销
  • 政府网站建设服务方案网址域名
  • 专门做进口零食的网站百度站长工具seo
  • 黑群晖架设wordpressseo案例分析100例
  • 北京网站建设 优化百度搜索榜排名
  • 旅游电子商务网站建设的流程网站seo需要用到哪些工具
  • 专业网站建设哪家好广告推广 精准引流
  • wordpress 采集蜘蛛南宁网站seo大概多少钱
  • 移动互联和网站开发seo专业培训中心
  • 网站根目录文件哪里可以学网络运营和推广
  • 合肥市网站建设关键词排名点击