によると、私はすでにデータとボイド関係テーブルを持つ2つのテーブルがあります。SQL条件付きの複数の挿入属性
ユーザー(IDU、idCreator、仕事、...)
許可(をIDP、名前)
User_Permission(IDU番号、IDPの#、idCreator、...)
User.job値に従ってユーザに 各行と について
、私にINSERT INTO User_Permission VALUES(aPermID, idU, idCreator, ...)
ここidU is the own user's ID
とidCreator is the User's ID creator
を希望します。
例:
- User.job = 'コム' あれば、私は
INSERT INTO User_Permission VALUES(100, User.idU, User.idCreator, ...)
をでしょう。 - User.job = 'Devの'場合、私は
INSERT INTO User_Permission VALUES(150, User.idU, User.idCreator, ...)
と
INSERT INTO User_Permission VALUES(200, User.idU, User.idCreator, ...)
私はそれを行うことができますかわからないでしょう。 Oracle 11gを使用しています。
idCreatorのための明確化は、各ユーザーが別の 1によって作成された
属性。 A
User_Permission
も誰かによって与えられます(そのため、idCreator
もあります)。ここで古いデータを回復しようとしていますので、デフォルトでは
User_Permission.idCreator
をUser.idCreator
と同じにします。
期待どおりの結果が得られるようにサンプルデータを提供するために質問を更新してください。お手伝いができる可能性があります。 – Boneist
さて、通常は、あなたの 'T1'レコードを挿入しているものから(あるいは' T1の 'AFTER INSERT'トリガーを介して)できるでしょう。両方のテーブルに 'number'があるのはなぜですか?また、一般的に言えば、特定の値( '100'、' 150')を持たなければならない列には 'id'を使用すべきではありません。ビジネス/ドメインエンティティが宣言しているものとにかくやっている)。 –
@Mistalisそうではありません。 USER_PERMISSIONに挿入したい結果を生成するよりも、USERとPERMISSIONのデータは何ですか?私。 「Comm」に「100」を、「Dev」に「150」と「200」を含む2つの行を使用する理由は何ですか?私たちはあなたのデータやテーブルを見ることができないので、可能な限りあなたの状況について多くの情報を提供する必要があることに注意してください。 – Boneist