update_or_new
함수에 대해 DBIx::Class
에서이 SQL을 에뮬레이트하려고했습니다.DBIx :: Class update 함수로 열을 확대하십시오.
UPDATE user SET lastseen = GREATEST(lastseen, ?::timestamp) WHERE userid = ?
는 undef
에 is_infinity
를 호출 할 수없는 말을 부풀려 컬럼에 오류가 있습니다.
$schema->resultset('user')->update_or_new({
userid => 'peter',
lastseen => \[ 'GREATEST(lastseen, ?::timestamp)', DateTime->from_epoch(epoch => 1234) ]
});
나는 InflateColumn::DataTime
이 기능을 기대하지 않기 때문이라고 생각합니다. 이 문제에 대한 해결 방법이 있습니까?
SQL을 덤프하십시오. 환경 변수'DBIX_TRACE = 1'을 설정하여 보내는 내용의 흔적을 확인하십시오. http://search.cpan.org/~ribasushi/DBIx-Class-0.08270/lib/DBIx/Class/Manual/Troubleshooting.pod –
SQL을 실행하기 전에 Deflating/Inflating에서 사망합니다. –
DBIC_TRACE = 1이지만, DateTime-> from_epoch (1234)는 적절하지 않습니다. 그 이상한 신기원을 사용하려면 DateTime-> from_epoch (epoch => 1234)가 필요합니다. DateTime-> from_epoch (1234) ' 명명 된 매개 변수가 예상 될 때 DateTime :: from_epoch 호출에서 이상한 수의 매개 변수 [...] \t DateTime :: from_epoch (undef, 1234)'$ perl -MDateTime -E ' -e line 1'에서 불리는 이유는 당신이 DateTime 생성자 – mikew