能够使我的语法与这个论坛上的许多帖子非常接近(你为此(,但不是一路走来。
我正在尝试通过在表中组合具有相同数据类型的两列来创建人工主键/代理键。我专门创建了第三列来保存此组合值。
我的语法是
INSERT INTO TABLE A ( ARTPRIMKEY )
SELECT (COLUMN1 ||'-'|| COLUMN2)
FROM TABLE A;
但是它不是以正确的顺序填充新列,而是插入新行,所有这些都使用 NULLS 有效地将行数加倍,但没有做我想让它做的事情。
我应该考虑进行合并吗(尽管我不确定我的匹配条件在哪里(?
谢谢
我怀疑你想要update
:
update a
set artprimkey = (COLUMN1 ||'-'|| COLUMN2) ;
在较新版本的 Oracle 中,可以将密钥生成为计算列,因此实际上不必将值存储在表中。