[Seasar-user:13993] Re: s2dao と mysql でシーケンスを実現する方法
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2008年 4月 29日 (火) 16:29:17 JST
furukawaです。
以下のファンクションで対応することができました。
CREATE TABLE test_user_id_sequence (
id INTEGER NOT NULL AUTO_INCREMENT
PRIMARY KEY(id)
);
create function next_test_user_id() returns int
begin
declare index_id integer;
UPDATE test_user_id_sequence SET id = LAST_INSERT_ID(id + 1);
select LAST_INSERT_ID() into index_id;
return index_id;
end;
//実行
select next_test_user_id()
LAST_INSERT_ID()は同じコネクション内でしか有効でないため
トランザクションは関係なく使うことができました。
--- [E-MAIL ADDRESS DELETED] wrote:
> furukawaです。
>
> タイトルが間違っておりましたので、修正いたしました。
> よろしくお願いいたします。
>
>
> --- [E-MAIL ADDRESS DELETED] wrote:
>
> > こんばんは、furukawaです。
> >
> > mysql
> でシーケンスを実現したいのですが、以下のようなコードをDaoの
> > メソッドとして呼び出す方法はないでしょうか?
> >
> > トランザクション開始
> > update sequence set id = last_insert_id(id + 1);
> > select last_insert_id();
> > トランザクション終了
> >
> >
> s2daoでmysqlを使用されている方は、オートインクリメントで生成した後に
> > IDを取得するという方法ととられているようなのですが、
> > できればインサート前にIDを生成したいと考えております。
> >
> > よろしくお願いいたします。
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内