MySQLとリレーション2

前のページにリレーション設定書きましたけど、あれはあくまで何もまだデータが入ってない場合です。

もしデータが入っていた場合、

「なんだ。簡単に設定できるじゃん。」

と調子に乗って

Database→Forward Enginerから変なところにチェックを入れて実行するとリレーションはできますが、データ消えます。

まあ、当たり前ですけど。

既にデータが入っていていて、後からリレーションを設定したい場合は

ここらへんを設定後、Applyボタンを押すと設定できるようです。

設定できたかどうかは

ここからER図が作れるようですので確認してみてください。

それから、こんなことする人がどれだけいるかは分かりませんが、MySQLをAccessのODBCでどうにかしようと思ったら、

1、Yes/No型はやめといた方がいい。

2、メモ型も注意が必要。

使ってるMySQLやAccessのバージョンによっても違うかもしれませんが、Yes/No型はエクスポートするとBIT型になるみたいなのですが、これを数値型にしておいた方がすんなり動く場合がありました。

「他のユーザーが同じレコードに・・・・」のようなメッセージが多発してデータが更新できず、仕方が無いので無理矢理SQLで処理していた部分も、データをBITからINTに変更するだけで思ったとおりに動くこともあります。

また、メモ型使うと#Deletedと表示され、上手く動かない部分をINT型に変換すると正常に動いたこともありましたので、AccessをMySQLにポイポイ投げ込む時は注意が必要です。

そりゃ添付文書取り込もうと思えばメモ型でなければ無理ですが、表示方法は考えないといけないかも。