ホームページ >データベース >mysql チュートリアル >MySQL で Oracle の NEXTVAL シーケンス機能をシミュレートするにはどうすればよいですか?
MySQL で同等の Oracle のシーケンス: LAST_INSERT_ID() による自動インクリメント
Oracle では、NEXTVAL を使用して次のシーケンス値を取得します。行を挿入しています。 MySQL は、AUTO_INCREMENT カラム属性と LAST_INSERT_ID() 関数を通じて同様の機能を提供します。
MySQL の自動インクリメント
AUTO_INCREMENT 属性は、新しく挿入されたカラム属性に一意の数値を割り当てます。行。カラムに定義されている場合、MySQL は挿入のたびにその値を自動的に増加させます。
LAST_INSERT_ID() を使用する
LAST_INSERT_ID() は、現在の接続。これを使用すると、行を生成したクエリに関係なく、最後に挿入された行の ID を取得できます。
例
AUTO_INCREMENT ID 列を含む次のテーブルについて考えてみましょう。 :
CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) );
Oracle で NEXTVAL をシミュレートするには、次のクエリを実行します。 MySQL:
SELECT LAST_INSERT_ID();
このクエリは、テーブルを変更せずに次の AUTO_INCREMENT 値を返します。
Spring JDBC テンプレート
LAST_INSERT_ID() を使用するにはSpring JDBC テンプレートを使用すると、クエリ メソッドを利用し、返された ResultSet を処理して、 value.
例:
int nextId = jdbcTemplate.query("SELECT LAST_INSERT_ID()", (ResultSet rs) -> { if (rs.next()) { return rs.getInt(1); } else { return 0; } });
このコードは LAST_INSERT_ID() クエリを実行し、取得した値を整数として返します。
以上がMySQL で Oracle の NEXTVAL シーケンス機能をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。