タグ

ブックマーク / zigorou.hatenablog.com (8)

  • SQLiteでForeign Key(もどき)を定義する - 日向夏特殊応援部隊

    まぁ、デフォルトでは対応してないんですがTriggerを駆使して実現した人が居るみたいです。 sqlite - Foreign Key Triggers まぁINSERTとかの時に参照してるカラムに該当してる値が無いとRAISE()するようなTriggerを定義する、、、みたいなノリですね。 CREATE TABLE User ( user_seq INTEGER PRIMARY KEY, user_id TEXT, password_digest TEXT, created_on DATETIME DEFAULT current_date, updated_on DATETIME DEFAULT current_date ); CREATE TABLE Profile ( user_seq INTEGER PRIMARY KEY CONSTRAINT fk_user_seq REFERE

    SQLiteでForeign Key(もどき)を定義する - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2010/12/02
    いまはもう foreign key はサポートされてる
  • SQL_CALC_FOUND_ROWS を毎回忘れるのでメモっておく件 - 日向夏特殊応援部隊

    LIMIT 〜 OFFSET なんか使う SELECT 文をページ送りとかしたい場合、全体の件数が必要だったりして、 SELECT * FROM people LIMIT 50 OFFSET 0; SELECT COUNT(guid) FROM people; みたいな感じの事やりたい訳だけど MySQL の場合だと、そういう枠組みがあるんですよね。 MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.10.3 情報関数 - FOUND_ROWS() さっきのクエリはこんな風になる、 SELECT SQL_CALC_FOUND_ROWS * FROM people; SELECT FOUND_ROWS(); これ、使いたいなと思った時に毎回忘れてググってたので備忘録として書いた。

    SQL_CALC_FOUND_ROWS を毎回忘れるのでメモっておく件 - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2010/03/31
    SQL_CALC_FOUND_ROWS は COUNT(*) を発行するよりは速いけど、次のページの有無のみが確認したい状況なら、もう一件余計にとる戦略の方が圧倒的に高速
  • SQL::Abstract::Plugin::InsertMulti - 日向夏特殊応援部隊

    作ってみました。元ネタは MySQLにおけるbulk insert と bulk update - 金利0無利息キャッシング – キャッシングできます - subtech です。bulk insert, bulk update *1 が出来ます。 SQL-Abstract-Plugin-InsertMulti-0.05 - add mysql bulk insert supports for SQL::Abstract - metacpan.org GitHub - zigorou/p5-sql-abstract-plugin-insertmulti: bulk insert and update support for SQL::Abstract 使い方は非常に簡単で、t/01_basic.t とか見て頂けるとすぐ分かるかと思いますがこんな感じです。 use strict; use wa

    SQL::Abstract::Plugin::InsertMulti - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2009/10/07
    SQL::Abstract 本体にいれてもいい気がするけどな
  • 生 DBI ユーザーのための DBI Cookbook (2) - 日向夏特殊応援部隊

    さて、まさか続編書くと思わなかったけど、d:id:ZIGOROu:20090731:1249050735 の続きです。 追記 (2009-08-15T00:30:56+09:00) ちなみに、下記で紹介してる方法は一般的には DBI の資産がたくさん合ってモゴモゴな状況をどうするか…みたいな状況の人向けです。 一般的には宜しくないです、と言うことを踏まえてどうぞ。 DBI の拡張をサブクラスを用いて行う Subclassing the DBI にちゃんと書いてあるんですが、DBI はサブクラスを作る為の環境が整っています。 論より証拠、実際の例です。 #!/usr/bin/perl use strict; use warnings; use DBI; use YAML; { package DBIx::Hideki; use base qw(DBI); package DBIx::Hide

    生 DBI ユーザーのための DBI Cookbook (2) - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2009/08/15
  • DBD::Mock を使ったテスト - 日向夏特殊応援部隊

    DBD::Mock は DBI のドライバの一つで、DBI を使ったプログラムで意図的な状態を作る事が出来ます。 と言う訳でメモ程度に書いて行きます。 データベースハンドルの取得 use strict; use warnings; use Test::More; use DBI; plan tests => 3; my $dbh = DBI->connect('dbi:Mock:', '', '', +{ AutoCommit => 0, RaiseError => 1 }); ok($dbh, 'Create database handle'); isa_ok($dbh, 'DBI:db'); is($dbh->{Driver}->{Name}, 'Mock', 'Driver information'); で、普通に Database Handle が取れます。 SELECT してる箇

    DBD::Mock を使ったテスト - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2009/03/21
    SQLite をつかう場合にくらべての利点はどこだろう
  • OpenID Tech Night vol.4 で講演してきました - 日向夏特殊応援部隊

    資料の方は、会社の方で許可が下り次第このエントリにて公開したいと思います。しばしお待ち下さい。 公開しました。 Introduction OpenID Authentication 2.0 こちらが当日の資料になります。 tkudo さんの最新動向@2009について そもそもデジタルアイデンティティとは何ぞやから始まり、SAML, InfoCard, OpenID の違いについて枠組みを説明しつつ、昨今の OpenID の盛り上がりと共にアイデンティティ界隈も発展して来たよと。 個人的には tkudo さんが「枯れた技術」として挙げていたIDレポジトリ間の同期やらその運用辺りの話とか聞きたいーとか思ったけど、どう考えてもあの場でそれ以上突っ込んだらやり過ぎかなーw Introduction OpenID Authentication 2.0 Introduction OpenID Auth

    OpenID Tech Night vol.4 で講演してきました - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2009/02/12
  • あけましておめでとうございます - 日向夏特殊応援部隊

    と言う訳で遅くなりましたが、皆様あけましておめでとうございます。 だいぶ事後報告となりましたが、前職は昨年12月15日で退職し、今年から新しい会社にて働いています。 入社して1週間ですが、知れば知るほど甘酸っぱい気持ちになります。 マイペースで頑張ろうと思います。皆様年もよろしくお願いいたします。

    あけましておめでとうございます - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2009/02/10
  • C でリライトされてるジョブサーバー gearmand を試した - 日向夏特殊応援部隊

    いつの間にやら http://gearmanproject.org/doku.php にて、gearman library 0.1 が C で書き直されてました。MySQL で有名な Brian Aker らが開発しているようです。 これは期待出来るかも? 追試 (2009-01-16T21:49:11+09:00) 0.02 がリリースしてたので試してみました。下のサンプルは正常に安定して動いてました。 一応報告。 インストール CentOS 5.2 で試してみました。 libevent のインストール CentOS の libevent は yum でインストールすると、1.1a と言うとんでもなく古いもので、これでは gearman library はコンパイル出来ません。従ってソースからインストールします。 $ cd /usr/local/src $ wget http://mon

    C でリライトされてるジョブサーバー gearmand を試した - 日向夏特殊応援部隊
    tokuhirom
    tokuhirom 2009/01/15
  • 1