簡體   English   中英

如何在oracle中將數據從一個表插入到另一個表

[英]How to insert data from one table to another table in oracle

我有兩個表' Inventory '和' Tendor ',其中Inventory具有主鍵pk_id ,當Inventory.ti_name = Tendor.ki_name時,我通過使用以下查詢更新了' Inventory '表

Update Inventory A set (Used_NAME, ACCOUNT_NUMBER, ti_STATUS)
 =    (Select B.Using_NAME, B.ACCOUNT_NO,  B.ki_STATUS from 
Tendor B where A.ti_name = B.ki_name and a.pk_id is not null);

此查詢有任何錯誤或任何優化的錯誤嗎?

對於不滿足條件Inventory.ti_name = Tendor.ki_name我想將其作為具有主鍵pk_id ' Inventory '表中的新行插入,應如何更改? 對於pk_id ,我是否需要執行“ SEQ.NEXTVAL FROM DUAL'類的邏輯,有人可以建議查詢嗎

此查詢更新表inventorytendor匹配行的搜索。 當兩個表都包含具有相同ki_name值的ki_name ,它將更新表inventory行。 來自tendor所有行(在inventory找不到)將插入到此處:

merge into Inventory a
using Tendor b
   on (A.ti_name = B.ki_name)
 when matched then update
  set a.Used_NAME = B.Using_NAME,
      a.ACCOUNT_NUMBER = B.ACCOUNT_NO,
      a.ti_STATUS = B.ki_STATUS
 when not matched then
insert (pk_id, Used_NAME, ACCOUNT_NUMBER, ti_STATUS)
values (your_seq.nextval, B.Using_NAME, B.ACCOUNT_NO,  B.ki_STATUS)

您也可以在insert語句中使用序列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM