掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     DDL読み込み結果のデフォルト値がMUL?


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2007-10-5 10:23

DDL読み込み結果のデフォルト値がMUL?

お世話になります。

DDLの読み込み結果のデフォルト値についてです。

DDL読み込みを行った場合、デフォルト値として指定していない "PRI" や "MUL" が定義される場合があります。

◇実際に作成したテーブル
引用:

CREATE TABLE testTable1 (
id int(11) NOT NULL auto_increment,
name varchar(30) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE testTable2 (
id int(11) NOT NULL auto_increment,
contents varchar(30) NOT NULL,
testTable1_id int(11) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT testTable2_FK_1
FOREIGN KEY (testTable1_id)
REFERENCES testTable1 (id) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

◇生成されたクラス図からDDLの生成結果
引用:

CREATE TABLE testTable1(
id INT NOT NULL DEFAULT PRI,
name VARCHAR(30) NOT NULL
) TYPE=InnoDB;

CREATE TABLE testTable2(
id INT NOT NULL DEFAULT PRI,
contents VARCHAR(30) NOT NULL,
testTable1_id INT NOT NULL DEFAULT MUL
) TYPE=InnoDB;


■環境
●クライアント
・Windows XP Pro. SP2
・Enterprise Architect 7.0.817
・MySQL ODBC 3.51 Driver
●サーバー
・CentOS 5 on VMwareServer on Windows XP Pro. SP2
・MySQL 5.0.22 (CentOS 提供のパッケージ)
●対象テーブル
・ENGINE=InnoDB

ご確認の程よろしくお願い致します。
tkouno
投稿日時: 2007-10-5 10:46
EA Administrator
投稿: 3939

Re: DDL読み込み結果のデフォルト値がMUL?

手元にあったWindowsのMySQLサーバで試したのですが
この問題は再現できませんでした。

つい先日、同じくCentOS上のMySQLでのみ、似たような
不可解な結果になる現象がございました。

ご指摘の件は、対象のテーブル要素の問題となっている列(属性)の
初期値に、ご指摘のような文字列が格納されていますでしょうか?
それとも、初期値の欄は空欄であるが、DDLの生成時にのみ
この文字列が出力されるのでしょうか?

お手数をおかけし申し訳ございませんが
この点についてご確認ください。

弊社のほうでも、CentOSサーバを再度準備して
再現するかどうか、確認いたします。

ご迷惑をおかけし申し訳ございません。

今後ともよろしくお願いします。
未登録ゲスト
投稿日時: 2007-10-5 11:52

Re: DDL読み込み結果のデフォルト値がMUL?

早速のご対応ありがとうございます。

画面上で見ると、のクラス初期値としてこの文字列が指定されておりますので、DDL生成時に発生しているわけではありません。
こちらの説明不足でした。申し訳ありません。

MySQLのDESCRIBE構文にてカラムに関する情報を取得すると以下の結果が返ってきます。

mysql> DESCRIBE testTable2;
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| contents | varchar(30) | NO | | NULL | |
| testTable1_id | int(11) | NO | MUL | NULL | |
+---------------+-------------+------+-----+---------+----------------+

Keyフィールドの値がデフォルト値として定義されてしまったのではないでしょうか。
tkouno
投稿日時: 2007-10-5 13:08
EA Administrator
投稿: 3939

Re: DDL読み込み結果のデフォルト値がMUL?

詳細な情報をお寄せ下さいまして
ありがとうございました。

確かに、ご推察どおり、1列ずれてしまっているような感じです。
以前の投稿でご紹介した、別の投稿のNotNullの問題も
同じ原因と思われます。

なぜ、CentOSの場合にだけこの「ずれ」が発生するのかは
わかりません。ODBCドライバの設定で改善できる問題なのか
それともEnterprise Architect側で対処すべき問題か
という点を含めて、開発元と連携して調査を進めます。

引き続きご迷惑をおかけし申し訳ございません。
できる限り早く原因を発見できればと思います。

今後ともよろしくお願いします。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ