【MyBatis】-自己増加プライマリ・キーと非自己増加プライマリ・キーの戻り
2158 ワード
mysqlはプライマリ・キーを増やし、insertコミットを実行する前に自動的にプライマリ・キーを生成します.なぜプライマリ・キーに戻るのか、つまり戻るのかは考えずに戻ったのではないでしょうか.いつも役に立つのですが、確かに、次のクエリの根拠になる可能性があります.あるいは、次の挿入された外部キーの証明書に戻る可能性があります.とにかく、戻ってからにしましょう.
実現思想はみそ紫である:mysql関数により挿入されたばかりのレコードの自己増加主キーを取得する:LAST_INSERT_ID()ですが、この関数はinsertの後に呼び出されます.
mybatisでは、ユーザーを追加するだけでプライマリ・キーを返すことに関連します.ここにはint型がデータベースで自己増加に設定され、uuid形式の2つのプライマリ・キーがあります.
自己増加プライマリ・キー方式の実行プロセスは、まずレコードをデータベースに挿入し、データベースがidを自動的に増加させるように設定されていることを前提とし、mysql関数によってinsertに記録されたばかりのプライマリ・キーを得る.
一方、uuidの形式は、uuid()によってプライマリ・キーが最初に得られ、次にプライマリ・キーがuserオブジェクトのid属性に設定され、その後insertが実行されると、userオブジェクトからid属性値が取り出される.
この方法は、いわゆる非自己増加プライマリ・キーの戻りであり、テーブル内のidのフィールド・タイプをstringに変更する必要がある.
両者は、実行プロセスの反対に、自己増加プライマリ・キーのinsert sql文プライマリ・キーが自動的に生成され、insert文にidフィールドを書く必要がなく、自己増加プライマリ・キーでない場合、insert文にidフィールドを書く必要があります.
mysqlでは、oracleでは次のように異なる関数とorder識別が使用されます.
実現思想はみそ紫である:mysql関数により挿入されたばかりのレコードの自己増加主キーを取得する:LAST_INSERT_ID()ですが、この関数はinsertの後に呼び出されます.
mybatisでは、ユーザーを追加するだけでプライマリ・キーを返すことに関連します.ここにはint型がデータベースで自己増加に設定され、uuid形式の2つのプライマリ・キーがあります.
SELECT LAST_INSERT_ID()
insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address});
自己増加プライマリ・キー方式の実行プロセスは、まずレコードをデータベースに挿入し、データベースがidを自動的に増加させるように設定されていることを前提とし、mysql関数によってinsertに記録されたばかりのプライマリ・キーを得る.
一方、uuidの形式は、uuid()によってプライマリ・キーが最初に得られ、次にプライマリ・キーがuserオブジェクトのid属性に設定され、その後insertが実行されると、userオブジェクトからid属性値が取り出される.
SELECT uuid()
insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address});
この方法は、いわゆる非自己増加プライマリ・キーの戻りであり、テーブル内のidのフィールド・タイプをstringに変更する必要がある.
両者は、実行プロセスの反対に、自己増加プライマリ・キーのinsert sql文プライマリ・キーが自動的に生成され、insert文にidフィールドを書く必要がなく、自己増加プライマリ・キーでない場合、insert文にidフィールドを書く必要があります.
mysqlでは、oracleでは次のように異なる関数とorder識別が使用されます.
SELECT .nextval()
insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address})