私は、クライアントからのサーバーに基づいてデータベースにクエリを送信する学校プロジェクトに忙しかったです。要件の1つは、次に利用可能なデータベースからAutoNumber
を取得することです。次の利用可能なオートナンバーを取得する
次の利用可能なSQLクエリを取得するにはどうすればよいでしょうかAutonumber
?これは可能ですか?
私は、クライアントからのサーバーに基づいてデータベースにクエリを送信する学校プロジェクトに忙しかったです。要件の1つは、次に利用可能なデータベースからAutoNumber
を取得することです。次の利用可能なオートナンバーを取得する
次の利用可能なSQLクエリを取得するにはどうすればよいでしょうかAutonumber
?これは可能ですか?
を使用して、以下のクエリを実行します。 MariaDB(MySQL)には、AUTO_INCREMENTフィールドの最後の値を与えるLAST_INSERT_ID()関数があります。次のオートナンバー型は最後の自動採番1と同じではありません
SELECT NEXT VALUE FOR some_sequence;
または
SELECT some_sequence.NEXTVAL;
それがOracleの場合、これはRDBMSの味に依存JDBC
SELECT YOUR_SEQUENCE.NEXTVAL FROM DUAL
:シーケンスをサポート
データベース(例えばアングル)は、あなたのようなもので、次の値を取得することができます。レコードが削除されている場合、次の可能なオートナンバーは最後の番号よりかなり高くなる可能性があります。また、MS Accessで否定的な自動番号を取得することも可能です。 Allen Browneが示すように、ADOXを使用して、次の自動番号であるautonumber列のseedプロパティを取得できます。
最高の解決策は、レコードを挿入し、生成されたキーを取得し、次にトランザクションをロールバックすることです。 トランザクションと自動番号をサポートするすべてのデータベースで機能します。
問題は、マルチユーザー環境では、この操作を実行するときと実際にレコードを挿入するときの間に他のユーザーがレコードを挿入しないという保証はありません。 – ChrisPadgham
問題はありません。一意の番号が必要です。 –
問題があります。トランザクションをロールバックします。あなたの番号は今や誰かの財産です。あなたがそれを手に入れても、必要な時にそれが消えてしまう可能性があるので、次の自軍番号を得る方法の価値は実際にはわかりません。 – Fionnuala
MSAccessのデータベースについて言及していますが、忘れてしまいました。同様のクエリは引き続き機能しますか? – Arianule
私はM $アクセスを一度も使ったことはありませんが、IDENT_CURRENT( 'table_name') ' - この関数はテーブルに最後に挿入されたレコードの最後のIDを返します... – DejanLekic