鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

TengでAUTO_INCREMENT列が取れないとはまるが・・・

Tengでプライマリーキーをidとしてオートインクリメントにしておいて以下のようにinsertしました。

my $row = $teng->insert('Markers',

{address => $address, type=> $type, name=> $name, detail => $detail,lat=> $lat, lng => $lng, create_at => $dt});

$row->idで値がとれなかった。 なんでだろうと。思ったら、スキーマ定義にpk id;が抜けていたからでした。ということで、しっかりpk定義をスキーマ定義 でしましょうというお話でした。

package GEvent::DB::Schema;
use Teng::Schema::Declare;
use DateTime::Format::MySQL;

table {
name 'Markers';
pk Id;  #忘れずに
columns qw( Id Name address detail Lat lng type create_at );

inflate 'create_at' => sub {
    DateTime::Format::MySQL->parse_datetime(shift);
};
deflate 'create_at' => sub {
    DateTime::Format::MySQL->format_datetime(shift);
};
};

1;