1

node.js のSequelize orm を使用してアプリを構築するためのcockroachdb の例に従いながら、それを拡張してモデル間の関連付けを追加しました。主キーは、unique_rowid() による自動インクリメントの INT です。ドキュメントに基づくと、これはSERIALの実装です。

モデルを同期した後、次のコードを使用してレコードを作成しようとしました。

models.sequelize.sync({ force: true })
  .then(function () {
    return models.Customer.create({
      name: "Sample Customer"
    })
  })
  .then(function (result) {
    const id = parseInt(result.dataValues.id, 10)
    return models.Order.bulkCreate([
      { subtotal: 100.00, customer_id: id },
      { subtotal: 200.00, customer_id: id }
    ])
  })

これを実行すると、「error: foreign key violation: value [255737842446434300] not found in customers@primary [id]」が表示されます

私のparseIntは、顧客の作成から返された文字列 ID を取得するために必要な精度を持っていないように見えますが、これを達成する方法がわかりません。

4

1 に答える 1