使用子查询 SQL PL/SQL 进行更新
我正在尝试更新表,但我的语法无法正常工作。我将临时表中的新元素添加到元素表中,并且想要更新metadata_attribute 中的column_name 和metadata_table 表中的table_name。这就是我所拥有的:
UPDATE METADATA_ATTRIBUTE
SET C.ELEMENT_ID = (SELECT ELEMENT_ID
FROM ELEMENT A , TEMP B
WHERE A.ELEMENT_NAME = B.WMIS_COLUMN_NAME)
FROM ELEMENT A, TEMP B, METADATA_ATTRIBUTE C, METADATA_TABLE D
WHERE C.COLUMN_NAME = B.WMIS_COLUMN_NAME
AND D.TABLE_NAME = B.WMIS_TABLE_NAME
AND ELEMENT_ID IS NULL;
I am trying to update a table, but I can't get my syntax to work. I added new elements from a temp table to my element table and I want to update column_name in metadata_attribute and table_name in metadata_table table. This is what I have:
UPDATE METADATA_ATTRIBUTE
SET C.ELEMENT_ID = (SELECT ELEMENT_ID
FROM ELEMENT A , TEMP B
WHERE A.ELEMENT_NAME = B.WMIS_COLUMN_NAME)
FROM ELEMENT A, TEMP B, METADATA_ATTRIBUTE C, METADATA_TABLE D
WHERE C.COLUMN_NAME = B.WMIS_COLUMN_NAME
AND D.TABLE_NAME = B.WMIS_TABLE_NAME
AND ELEMENT_ID IS NULL;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从单个更新语句更新两个表在 Oracle 中是不可能的。
您需要编写一个PL/SQL 块(过程或触发器)来解决这个问题。
如果您需要更多帮助,请详细说明您的问题。
Updating two tables from a single update statement is not possible in oracle.
You need to write a PL/SQL block (procedure or trigger) to solve this problem.
Elaborate your question if you need more help.
当你尝试这个时会发生什么?
What happens when you try this?
试试这个:
这将更新 METADATA_ATTRIBUTE 表中的行。
try this:
This will update rows in the METADATA_ATTRIBUTE table.