タグ

ブックマーク / yatt.hatenablog.jp (2)

  • sqlite3のPRAGMA文で外部キー制約を有効にする - yattのブログ

    これまでsqlite3で外部キーを使ったことがなかったので知りませんでしたが、sqlite3はデフォルトでは外部キーのサポートが無効になっている事に気が付きました(バージョンは3.6.22)。テーブルのcreate時に外部キー制約を指定することはできるけれど、実際に参照先テーブルのレコードが変更、削除されたときはノーチェックです。不正なデータだろうがなんだろうがwarningひとつ出しません。 sqlite3で外部キーを使いたい場合、PRAGMA文で動作を変更しなければいけません。sqlite3はPRAGMA文で動作を変更できるらしいです。たとえばPRAGMA cache_sizeでキャッシュサイズを変更できます。PRAGMA文で使える項目のリストは以下のページに記載されています。 http://www.sqlite.org/pragma.html PRAGMAで外部キー制約を有効にしたい

    sqlite3のPRAGMA文で外部キー制約を有効にする - yattのブログ
  • coreutilsにいつのまにかタイムアウト用コマンドが存在していた - yattのブログ

    ふとしたきっかけで/usr/binにtimeoutというコマンドが存在するということを発見した。コマンド名から推測するに、指定された時間以内にプロセスが終了しなければ強制終了でもするコマンドなのだろう。--helpオプションをつけるとGNU Coreutils7.4と出てきた。coreutilsのコマンドらしい。 以前、プロセスをタイムアウトする機能をもつコマンドを探しても見つからずにネットで拾ったshスクリプトを使った経験があったので、いつの間に組み込みコマンドとして提供されていたのだろうと調べてみた。 timeoutコマンドはcoreutils7.0以降に含まれるコマンドで、あるコマンドが指定された秒数以内に終了しない場合にシグナルを送信するコマンドだ。デフォルトのシグナルはKILL。 たとえば10秒以内に処理が終わらない場合にプロセスを終了させるにはこう書く。 $ timeout 1

    coreutilsにいつのまにかタイムアウト用コマンドが存在していた - yattのブログ
    iww
    iww 2010/02/15
  • 1