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

続編upsert()は更新されず、挿入されるだけです

    upsert()の例では、 idを提供していません upsertメソッドへのエントリの。これは、続編が idと一致しないことを意味します 行に( id は未定義です)、したがって、新しい行を挿入します。

    別の主キーを使用する場合でも、sequelizeは主キーを使用して既存の行を検索するため、常に一致するプロパティである必要があります。

    createOrUpdateTransaction: {
        type: Transaction,
        args: {
            // Omitted code...
        },
        resolve: (root, args) => {
            return db.models.transaction.upsert({
                // The id property must be defined in the args object for 
                // it to match to an existing row. If args.id is undefined 
                // it will insert a new row.
                id: args.id, 
                time: new Date().toString(),
                payerAccountNumber: args.payerAccountNumber,
                recipientAccountNumber: args.recipientAccountNumber,
                amount: args.amount,
                currency: args.currency,
                paymentMethod: args.paymentMethod,
                cardNumber: args.cardNumber,
                cardName: args.cardName,
                cardNetwork: args.cardNetwork,
                // Omitted fields ...
            })
        }
    }
    



    1. WHEREと共有される計算でのMySQLORDERBYの最適化

    2. SQL:行を検索し、一致する列の数に従って並べ替えますか?

    3. Mysql select recursiveは、複数のレベルを持つすべての子を取得します

    4. SQLServerの統計の改善にご協力ください。