2017-01-26 19 views
2

内の非キー列の値にINSERT文を結ぶ:は、私はこれらのテーブルを持つデータベースを持っている別の

Table Relationships

私はテーブルProjectに値PROJNAME、説明とがFileStorageを挿入しています。私はこの情報をテーブルUsersにリンクしようとしています。ここでは、非キー列AUIDの値のみを所有しています。

INSERT INTO Project (ProjName, Description, FileStorage) 
VALUES 
(
    '#form.capstoneName#' 
    ,'#form.capstoneDescription#' 
    , <cfqueryparam cfsqltype="cf_sql_blob" value="#FileReadBinary(FORM.capstoneFile)#"> 
) 

は、しかし、私はこの特定のINSERT文は、私がログインしているユーザーのために保管していた値のAUIDを通じてユーザーテーブルのID列に関連することにしたい。これまでのところ私はこのようなものを持っています。

答えて

1

プロジェクトIDがID列の場合は、を新しく生成するためにINSERTクエリでcfquery result attributeを使用します。次に、INSERT/SELECTを使用して対応するユーザーIDを検索し、両方の値をProject_Users表に挿入します。必要に応じてcfqueryparam cfsqltypesを変更します。

<!--- Inserts one record for EACH matching AUID value ---> 
    INSERT INTO Project_Users (ProjectID, UserID) 
    SELECT <cfqueryparam value="#resultName.generatedKey#" cfsqltype="cf_sql_integer"> 
     , ID 
    FROM Users 
    WHERE AUID = <cfqueryparam value="{The_AUID_Value}" cfsqltype="{Update_With_Your_Type}"> 

NB:クエリのいずれかsucceed or fail as a single unitの両方を確保するために、両方のINSERTのcftransaction中を包むようにしてください。私はこの試みを与えるだろう

+0

は "結果" 属性の追加の例を参照してください。あなた、私は多くを理解するのを助けてくれてありがとう。 –

+0

あなたは大歓迎です。私が言いたいことを忘れたことの一つは、INSERTの両方を 'cftransaction'にラップすることです。これにより、何らかの理由でINSERTのいずれかが失敗した場合に、不整合なデータにならないようにします。 – Leigh

関連する問題