Guest User

Untitled

a guest
Jun 11th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. use FindBin;
  7. use lib qq($FindBin::Bin/lib);
  8. use Data::Dumper;
  9.  
  10. # preapare table
  11. # $ sqlite3 user.db 'CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, nickname, t_mod, user_id);'
  12. # $ sqlite3 user.db 'INSERT INTO user (nickname, user_id) VALUES ("issm", 100);'
  13.  
  14. # preapare table
  15. # $ mysql -e "CREATE TABLE user (nickname TEXT, t_mod TIMESTAMP, user_id INT)" test
  16. # $ mysql -e 'INSERT user (nickname, user_id) VALUES ("issm", 100)' test
  17.  
  18. package Your::Model;
  19. use DBIx::Skinny setup => {
  20. # dsn => 'dbi:SQLite:dbname=user.db',
  21. dsn => 'DBI:mysql:database=test',
  22. username => '',
  23. password => '',
  24. };
  25. 1;
  26.  
  27. package Your::Model::Schema;
  28. use DBIx::Skinny::Schema;
  29.  
  30. # use DateTime;
  31. # use DateTime::Format::Strptime;
  32. # use DateTime::Format::MySQL;
  33. # use DateTime::TimeZone;
  34. #
  35. # my $timezone = DateTime::TimeZone->new(name => 'Asia/Tokyo');
  36. # install_inflate_rule '^t_mod$' => callback {
  37. # inflate {
  38. # my $value = shift;
  39. # my $dt = DateTime::Format::Strptime->new(
  40. # pattern => '%Y-%m-%d %H:%M:%S',
  41. # time_zone => $timezone,
  42. # )->parse_datetime($value);
  43. # return DateTime->from_object( object => $dt );
  44. # };
  45. # deflate {
  46. # my $value = shift;
  47. # return DateTime::Format::MySQL->format_datetime($value);
  48. # };
  49. # };
  50.  
  51. install_table user => schema {
  52. pk 'id';
  53. columns qw/
  54. id
  55. nickname
  56. t_mod
  57. user_id
  58. /;
  59. trigger pre_update => sub {
  60. my ( $class, $args ) = @_;
  61. # $args->{t_mod} ||= DateTime->now;
  62. $args->{t_mod} ||= time;
  63. };
  64. };
  65. 1;
  66.  
  67. package main;
  68.  
  69. my $row = Your::Model->new;
  70.  
  71. # print Data::Dumper->Dump([\$row]);
  72.  
  73. $row->update(
  74. 'user',
  75. {nickname => 'issm'},
  76. {user_idx => 9}, # ワザとミス.ホントは user_id
  77. );
Add Comment
Please, Sign In to add comment