sql >> データベース >  >> RDS >> PostgreSQL

外部キーでリンクされたテーブルにデータを挿入する

    これは、既存の顧客の場合は1つのSQLステートメントで、新しい顧客の場合は3つのステートメントで実行できます。あなたがしなければならないのは、楽観主義者であり、顧客がすでに存在するかのように行動することです:

    insert into "order" (customer_id, price) values \
    ((select customer_id from customer where name = 'John'), 12.34);
    

    顧客が存在しない場合は、次のようなテキストになるSQL例外が発生します。

    null value in column "customer_id" violates not-null constraint
    

    (customer_idをnull不可にしたことを提供します。これはあなたが行ったと確信しています)。その例外が発生した場合は、顧客を顧客テーブルに挿入し、挿入を注文テーブルにやり直します。

    insert into customer(name) values ('John');
    insert into "order" (customer_id, price) values \
    ((select customer_id from customer where name = 'John'), 12.34);
    

    あなたのビジネスが「すべてのお金をどこに置くか」をあなたの唯一の本当の問題にする速度で成長していない限り、あなたの挿入物のほとんどは既存の顧客のためのものです。したがって、ほとんどの場合、例外は発生せず、1つのステートメントで完了します。



    1. 東京のMariaDB

    2. 子供のパーティーのデータモデル

    3. Oracleで数値をパーセンテージとしてフォーマットする

    4. MySQLサーバーでテーブルを表示するさまざまな方法