无法修改映射到非保留键表的列?

时间:2018-12-04 05:26:18

标签: sql oracle oracle-apex

我正在尝试运行一个简单的update命令来从此视图(即emp)更改基表。但是我收到了我从未见过的错误消息,并且我不太理解它在说什么。如果需要,我可以提供任何其他信息。

UPDATE emp_view_updt SET deptno = 30 WHERE empno = 7369;

enter image description here

这是emp_view_updt的定义:

CREATE VIEW emp_view_updt as SELECT e.empno, e.ename, e.job, d.deptno, DECODE (d.deptno, 10, 'New York', 20, 'Dallas', 30, 'Chicago', 40, 'Boston') as loc FROM emp e INNER JOIN dept d ON e.deptno = d.deptno;

以下是列和数据类型: enter image description here

这是视图的外观: enter image description here

1 个答案:

答案 0 :(得分:1)

我相信您缺少参照完整性约束(可能还有主键)。确保add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 ); function custom_price_html( $price, $product ){ if ( is_product() ) { // Simple products and variations if( $product->is_type( 'simple' ) || $product->is_type( 'variation' ) ) { $sales_price_to = $product->get_date_on_sale_to(); if( ! empty($sales_price_to) ){ $replacement = ' </ins> <span class="notice-price">(on offer until '; return str_replace( '</ins>', $replacement . date( 'j.M.Y', $sales_price_to->getTimestamp() ) . ')</span>', $price ); } } // Variable products else if ( $product->is_type( 'variable' ) ) { $content = ''; // Loop through variations foreach ( $product->get_children() as $key => $variation_id ) { $variation = wc_get_product($variation_id); $sales_price_to = $variation->get_date_on_sale_to(); if( ! empty($sales_price_to) ){ $date_to = date( 'j.M.Y', $sales_price_to->getTimestamp() ); $class = $key == 0 ? 'class="active"' : ''; $content .= '<i data-id="'.$variation_id.'" data-order="'.($key + 1).'" '.$class.'>'. $date_to .'</i>'; } } if( ! empty($content) ){ return $price . ' <span class="notice-price">(on offer until ' . $content .')</span>'; } } } return $price; } deptno的主键,并从deptemp添加一个外键约束,并且更新应该起作用。这使数据库可以推断出视图的每个结果都映射到dept中的不同行。

dept

https://livesql.oracle.com/apex/livesql/s/hm2ybpb8hnjoplqmdfoa4sb56