我插入到兩個表中。進入第一張桌子會有一個新的'物品'。有很多領域,但爲了簡單起見,我只會告訴你我需要什麼。這是我的ColdFusion頁:將查詢中的自動增量作爲變量在另一個查詢中使用
<cfquery>
INSERT INTO my_item_table (itemid, a bunch of other stuff)
VALUES (itemid_sequence.nextval, a bunch of other stuff)
</cfquery>
我的問題是我要插入自動增加爲itemid的值到另一個表,文件附件表。同樣的ColdFusion頁:
<cfquery>
INSERT INTO my_attachments_table (attachno, itemid, filename)
VALUES (attachment_sequence.nextval, **AUTO-INCREMENT VALUE HERE**, '#url.fileName#')
</cfquery>
我知道我可以查詢項目表對於剛剛進入第一個表中的值,但即使它是不太可能,有可能是用戶輸入不唯一的,這意味着相同字段的查詢可能會返回多行。在這種情況下,我無法獲得itemid。在查詢中創建的itemid是唯一的唯一標識符。
我的問題是:有沒有辦法將auto = increment設置爲查詢內的值,以便我可以在外部使用它?如果沒有,你會如何建議獲得我的itemid?謝謝。
我不是Oracle專家 - 聽起來Danny知道他在說什麼 - 但是當您在一個查詢中插入CF時,然後在下一個查詢中獲取自動增量的結果時,您會遇到併發問題(另一個請求同時增加了字段)。確保並使用交易 - 或者丹尼建議的存儲過程 - 以避免這種可能性。 – 2012-08-07 13:12:26
或者,您可以在插入查詢中獲取增量值*,並將其作爲結果返回。 – 2012-08-07 13:13:42
我該如何將它設置爲一個變量?據我所知,你會cfoutput這個查詢,但沒有列名定義引用。即這將如何工作? –
2012-08-07 13:14:03