[英]How to execute an INSERT that's in a SELECT statement?
對於我的DB課程,我有一個表:lab4Central,其列為:productid,description和plantid,工廠QRO的ID為1000,例如:12799,“產品12799”,1000。工廠SLP的ID為2000。 ,例如:29665,“產品29665”,2000。
我必須為其他2個工廠添加新的寄存器:GDA和MTY。 對於GDA,寄存器與工廠QRO相同,但是它已調整了productid + 20000,對於MTY相同,但具有SLP寄存器,因此最后看起來像:
Plant GDA: 329799, 'Product 32799', 3000.
plant MTY: 49665, 'Product 49665', 4000.
正如您所看到的,對於GDA而言,該寄存器與QRO中的寄存器相同,但與另一個Plantid相同,我們在productid中添加了20000,對於MTY也是如此。
我對此進行編碼,以提供正確的值:
SELECT 'INSERT INTO LAB4CENTRAL VALUES('||(PRODUCTID+20000) || ',' || DESCRIPTION || ','|| 3000 ||');' FROM LAB4CENTRAL WHERE PLANTID=1000;
但這只是一個選擇,我不知道如何執行insert語句,因此它將數據插入表中。
希望您能夠幫助我。
您想要的實際上與您編寫的相反。 相反, 插入...選擇...可能就是您想要的。
INSERT INTO LAB4CENTRAL
SELECT ProductID + 20000, 'Product' || Productid + 20000, 3000
FROM LAB4CENTRAL
WHERE PlantID = 1000;
可能需要進行調整以適合您的數據,但是基本思想是編寫SELECT語句,該語句為您提供了要插入到表中的結果集。
生成INSERT語句,然后手動執行,可能是大約100行的批處理,這是一個很好的技巧。
否則,將執行INSERT ... SELECT
語句。 但這對於同一張表是不可能的,因此是這種解決方案。
另請參閱“輸出到文件”等(目前尚不知道)。
假設您要將選擇結果插入到ProductId,Description和your_col_fro_3000列中,則可以使用INSERT SELECT
INSERT INTO LAB4CENTRAL(ProductID, Description, your_col_for_3000)
SELECT ProductID + 20000, 'Product' || (Productid + 20000), 3000
FROM LAB4CENTRAL
WHERE PlantID = 1000;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.