ひこぽんのーと

覚書と雑記です。

JavaEE 7をやってみよう。 SQLite/DBeaver その4

その3のつづき。

DEPT表のDDLを作り、SQLエディタから流してみる。

CREATE TABLE DEPT (
  DEPTNO INTEGER NOT NULL,
  DNAME TEXT(14),
  LOC TEXT(13),
  PRIMARY KEY  (DEPTNO)
)

SQLの実行はCTRL + ENTERとのこと。
コミットしてもDatabase Navigaterには反映されないが、内部では正しくコミットされている。
Database Navigaterをリフレッシュするとちゃんと表示される。
f:id:nagamitsu1976:20150827184544p:plain

最後に外部キーを追加してみる。

外部キーの追加
EMP表をダブルクリックし外部キータブを開く。コンテキストメニューから「新規登録 外部キー」を選ぶ。
f:id:nagamitsu1976:20150827185522p:plain
親子関係を選択
参照テーブルを選択。(ダイアログの上側の表) ここではDEPT表を選ぶ。
すると列(ダイアログの下側の表)に参照関係の列が自動で表示される。
列はプルダウンとなっていて候補が複数ある場合は自分で選択もできる。
削除時や更新時の動作もここで指定できる。f:id:nagamitsu1976:20150827185536p:plain
完了
完了ボタンを押すと外部キーが作成される。
f:id:nagamitsu1976:20150827185722p:plain
コミット
編集内容を保存すると、やはりダイアログにDDLが表示される。永続化ボタンを押して反映する。
f:id:nagamitsu1976:20150827190246p:plain
と思ったら、エラーった。
SQLiteはAlterが使えないのか。f:id:nagamitsu1976:20150827190353p:plain

思わぬところで。。。*1
まぁ、他のRDBならこんな感じでOKなんだろう。

気を取り直して、次回はデータの登録と検索、削除なんかをやってみよう。

*1:SQLiteの外部キーは癖がある模様。とりあえず、Alterはダメっぽい。
sql - How do I add a foreign key to an existing sqlite (3.6.21) table? - Stack Overflow