別のテーブルから1つの列を取得し、その列データを他のデータと一緒に別のテーブルに挿入する必要があるという要件があります。
例:
Cust_id = '11 'の場合、custテーブルからcust_codeを取得し(cust_code =' ABCD 'を返すとしましょう)、そのcust_codeを他のデータとともに使用して、table_1に次のように挿入します。
WITH get_cust_code_for_cust_id AS (
SELECT cust_code FROM cust WHERE cust_id=11
)
INSERT INTO public.table_1(
cust_code, issue, status, created_on)
VALUES (SELECT cust_code FROM get_cust_code_for_cust_id, 'New Issue', 'Open', current_timestamp)
ただし、get_cust_code_for_cust_id
クエリを呼び出していないため、このクエリは機能しません。
私の好みは、WITH
句を含むクエリですが、他の回答も歓迎されます。
insert
ステートメントのソースがselect
do notの場合、VALUES
キーワードを使用します。
WITH get_cust_code_for_cust_id AS (
SELECT cust_code
FROM cust
WHERE cust_id=11
)
INSERT INTO public.table_1 (cust_code, issue, status, created_on)
SELECT cust_code, 'New Issue', 'Open', current_timestamp
FROM get_cust_code_for_cust_id;
ただし、CTEは実際には必要ありません。
INSERT INTO public.table_1 (cust_code, issue, status, created_on)
SELECT cust_code, 'New Issue', 'Open', current_timestamp
FROM cust
WHERE cust_id=11