さて、私は自分のサイトで(Authorize.Net経由で)支払いを受け入れています。支払いフォームは領収書ページにリダイレクトされます。特定の要件を持つデータベーステーブルの最終行を取得するには?
請求書コード(InvoiceCode列)(このインスタンスではRRC0A)の列がデータベースにあります。それから私は8桁の数字(列InvoiceNumber)の別の列を持っています。それからInvoiceCode + InvoiceNumber = InvoiceIdを取得します。たとえば、InvoiceIdはRRC0A + 8の番号になります。 00000000、00000001、00000002などのように増加します。したがって、InvoiceIdはRRC0A00000001になります。また、私は新しい行を追加するとき1でInvoiceNumberをインクリメントする必要が00000000
で開始し、他のInvoiceCodesがあるだろうので、私は単に私のデータベース内の列をインクリメントすることはできません。データベースに入力された最後のInvoiceNumberを取得するにはどうすればよいですか? InvoiceCode RRC0Aに関連付けられている必要があります。これは、1人以上の人が支払いを行っているときに発生する可能性があるため、私は最良の方法についてはわかりません。
どのようにして増分するInvoiceNumberを0の前に付けて、常に8桁にすることができますか?
私はIDフィールドと計算フィールドを提案します。あなたが間違っているように最後に挿入された行を選択しようとしないでください。 –
通常は非常に悪いアイデアは連続したIDを処理して、あなたのdbに1つの自動インクリメントフィールドを作成する方が良い –
自分でインクリメントする数字を管理することは良いアイデアではありません。これは、IDプロパティが処理するように設計されたものです。別のオプションはシーケンスです。これらの両方は並行性のような処理を行い、トランザクションをロールバックすることは非常に難しく、非常に間違いが非常に簡単です。 –