Oracleで途中からプライマリーキーを追加する

oracleを使って開発中に途中で、テーブルの世代管理が必要になるという悲劇に遭遇した際は
世代管理用フィールドの追加とPrimaryKeyを張り替えます

ALTER TABLE sample_table ADD (
    rev NUMBER(8)
);

ALTER TABLE sample_table DROP PRIMARY KEY;

UPDATE sample_table SET rev  = 0;

ALTER TABLE sample_table ADD PRIMARY KEY (ID, REV);

IDはもともと用意していたPrimary keyです
Primary keyにするにはnullではだめなので、0をセットしています

linuxの便利なコマンドtips

Ubuntu、bashで試してます

深いところにディレクトリをつくって移動

$ mkdir sample/test
$ cd sample/test

とするとき

$ mkdir sample/test
$ cd $_

でできます
もしくは

$ mkdir sample/test
$ cd (ESCキー押して、ドット(.)を押す)

でもできます

cdした後、前のディレクトリに戻る

$ cd sample/test
とした後
$ cd –
とすると元に戻ります

hubotでscriptを作ってみる

hubot scriptを作ってみました

coffee scriptを

hubotディレクトリ/scripts/

の下に *.coffee
と保存をすれば勝手に読み込んでくれます

$ vim scripts/my.coffee

module.exports = (robot) ->

  robot.hear /おはよう/i, (msg) ->
    msg.send "Good Morning"

hubot-goodmorning

ちゃんと反応してくれます
robot.hearだと文字に反応します

hubot/scripting.md at master · github/hubot
を読むとよさそうです