[Seasar-user:15711] Re: s2jdbc-gen + Oracle について

neko akira [E-MAIL ADDRESS DELETED]
2008年 9月 9日 (火) 17:38:48 JST


あきらです

すみません、現状までかけばよかったですね

> そうですね。
> ここははまりそうなので、次のバージョンから
> 自動で生成するように対応したいと思います。

おねがいいたします!

ただメンバーでさらの状態からだと0000のDROPで失敗するので
gen-entity の時に SCHEMA_INFO テーブルを作成して状態を1に変えちゃう。。。

でも少し乱暴ですよね
悩ましいところかもしれません

>> また、一番先頭のカラムは auto_increment 系のIDじゃないと
> そのような制限はありません。
> 動かないとはどういうことですか?
> シーケンスで採番した値が重複するということでしょうか?

これは、プライマリキーに auto_increment がついてきました

====================================================
CREATE TABLE test_table(
PRIMARY KEY(title),

title varchar(256)
);

INSERT INTO test_table values( 'aaa' );
INSERT INTO test_table values( 'bbb' );
INSERT INTO test_table values( 'ccc' );
====================================================

上記のようなテストDBからgenを実行するとDDLが

====================================================

create table TEST_TABLE (TITLE varchar(256) not null auto_increment,
constraint TEST_TABLE_PK primary key(TITLE));

create table SCHEMA_INFO (VERSION int);
insert into SCHEMA_INFO (VERSION) values (1);

====================================================

こう生成されます。varchar に auto_increment はつかないのでエラーとなります。
プライマリーキーをつけなければ auto_increment はついてきません

> 0001/createの下のファイルを名前の昇順に実行しているのですが
> 010-create-table.sqlが成功した以降でSQLの実行に失敗して
> いないでしょうか?
> エラーログが出ていたら見せてください。

(説明のため原文から前後しています)

SQLをすべて消してデータだけにしてみたのですがエラーは
でていませんでした。。。

====================================================
CREATE TABLE test_table(
title varchar(256)
);

INSERT INTO test_table values( 'aaa' );
INSERT INTO test_table values( 'bbb' );
INSERT INTO test_table values( 'ccc' );
====================================================

上記のDBからgenすると

=010-create-table.sql=====================================
create table TEST_TABLE (TITLE varchar(256));

create table SCHEMA_INFO (VERSION int);
insert into SCHEMA_INFO (VERSION) values (1);
====================================================

と

=040-drop-table.sql======================================
drop table TEST_TABLE;

drop table SCHEMA_INFO;
====================================================

と

=040-dump/test_table.csv=================================
"TITLE"
"aaa"
"bbb"
"ccc"
====================================================

が出来上がりました。
見た限り問題はないですし、SQLをすべて消しても同じ結果でした

環境はWindowsXP上にXAMPPを利用してMySQL5.0.51aを利用しています。
コネクタは mysql-connector-java-5.1.6 を利用しています。

以上簡単ですがよろしくおねがいいたします

あきら


Seasar-user メーリングリストの案内