MySQLの最近のブログ記事

OpenOffice で MySQL に Connector/j でつながらなかった。
まずい、コネクタを入れていなかった。

いれてみた。
クラスパスも指定した。
OOo の再起動もした。
でも「JDBC ドライバは読み込まれませんでした。」と出てきた。

64 bit Windows だから?
MySQL を winx64 にしたから?
しょうがないので ODBC にしてみた。
結果オーライ。

でもなんか納得できない。

しばらく経って原因に気がついた。
クイック起動を終了させていなかった。
OOo を再起動させたつもりがしてなかった。
馬鹿みたい。

でも原因を探っていろいろネットを見ているうちに拡張機能でコネクタなしの接続ができることを知った。

Sun Connector for MySQL (Beta)
( http://extensions.services.openoffice.org/node/2447 2009.11.12 現在空っぽ)

MySQL Connector for OpenOffice.org
( http://extensions.services.openoffice.org/project/mysql_connector )

使い方:
・ OpenOffice.org で「新規データベース」
・ データベースウィザードで「既存のデータベースに接続」>「MySQL」
・ 「Native に接続(C)」
・ データベースの名前、サーバURL、ポート番号、Socket を指定。
URL に localhost とすると NG。127.0.0.1 とIPアドレスなら OK。
Socket は 空白。
・ ユーザID やパスワードを必要なら入力。
・ テスト接続で接続が確認できたら完了。

リレーションの定義

OpenOffice で MySQL に接続してテーブル間にリレーションを張っても「目に見えない」。

リレーションの定義を SQL 文で書きたいけど、書き方を知らない。
しかたないので手間をかけて調べる。


  1. MySQL Administrator でバックアップファイルをとる。
    SQL文のファイルができる。
  2. MySQL Workbench でインポートだリバースエンジニアリングだして SQL 文を読み込む。
  3. 読み込んだデータベースを図にしていじる。
    1:nのリレーションを作って、勝手にできた外部キーを編集したり削除したり。(追記)
  4. 編集結果をエクスポートして SQL 文をつくる。

で、その結果をじっくり眺めながらお勉強をする。

--
-- Definition of table `g_category`
--

DROP TABLE IF EXISTS `g_category`;
CREATE TABLE IF NOT EXISTS `bee`.`g_category` (
`CODE` VARCHAR(4) NOT NULL ,
`CATEGORY` VARCHAR(50) NULL DEFAULT NULL ,
`GRP_CODE` VARCHAR(4) DEFAULT NULL ,
`NOTES` LONGTEXT NULL DEFAULT NULL ,
`COST` DECIMAL(12,2) NULL DEFAULT NULL ,
`PRICE` DECIMAL(12,2) NULL DEFAULT NULL ,
`CARRIAGE` DECIMAL(12,2) NULL DEFAULT NULL ,
`PHOTO` LONGBLOB NULL DEFAULT NULL ,
PRIMARY KEY (`CODE`) ,
CONSTRAINT `fk_g_category_g_group`
FOREIGN KEY (`GRP_CODE` )
REFERENCES `bee`.`g_group` (`CODE` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

CREATE INDEX fk_g_category_g_group ON `bee`.`g_category` (`GRP_CODE` ASC) ;


--
-- Definition of table `g_group`
--

DROP TABLE IF EXISTS `g_group`;
CREATE TABLE `g_group` (
`CODE` varchar(4) NOT NULL,
`GROUP` varchar(50) NOT NULL,
`NOTES` text,
PRIMARY KEY (`CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

連絡先

nakanohito