rails:2287
From: 京和 崇行 <kyowa_t@k...>
Date: Fri, 13 Jul 2007 17:35:01 +0900
Subject: [rails:2287] Re: '0000-00-00 00:00:00'がデフォルトなカラムを持つテーブルへのINSERT
京和と申します。 RailsやOSなどの環境を記載されていないので詳細は不明ですが、 Windowsであればデフォルト値を "0000-00-00 00:00:00"から"0000-00-00 9:00:00" へ変更すれば動作するのではないかと思います。 この現象はRailsではなくWindows版RubyのTime型の取り扱いに起因していたと思います。 GMTに関するところですね。 参考になれば幸いです。 2007/07/13 14:35, Yoshiteru Negishi wrote: > 根岸と申します。 > 初めて質問させていただきます。 > > 弊社ではシステムのRailsによる置き換えを先日より行っています。その過程 > で、社内で解決できない問題が出てしまったので是非ともご教示ください。 > > 弊社のシステムではMySQLを選択し、一部のDateTime型のカラムではデフォルト > 値に"0000-00-00 00:00:00"が入っています。 > そう言ったテーブルに対し、そのDateTime型のカラム以外のカラムを指定して > INSERTをかけると、Railsがそのカラムに対してNULLをインサートしようとして > エラーがでてしまいます。 > テーブル構造をなるべく変えずにこの問題を解決する手法をご教示いただけます > でしょうか。 > > 以下が詳細です。(テーブル名などはアテです) > > テーブル構造 > +------------+------------------+------+-----+---------------------+----------------+ > > | Field | Type | Null | Key | Default | > Extra | > +------------+------------------+------+-----+---------------------+----------------+ > > | ID | int(10) unsigned | | PRI | NULL | > auto_increment | > | UserID | int(10) unsigned | | | 0 | > | > | EnterDate | datetime | | | 0000-00-00 00:00:00 | > | > | AcceptDate | datetime | | | 0000-00-00 00:00:00 | > | > +------------+------------------+------+-----+---------------------+----------------+ > > > > Railsのコード > Table.create( > :UserID => id, > :EnterDate => Time.now > ) > > 発行されるSQL > INSERT INTO Table (`UserID`, `EnterDate`, `AcceptDate`) VALUES(0, > '2007-07-13 14:11:08', NULL) > -- ML: rails@r... 使い方: http://QuickML.com/
2286 2007-07-13 07:35 [negishi@c... ] '0000-00-00 00:00:00'がデフォルトなカラムを持つテーブルへのINSERT -> 2287 2007-07-13 10:35 ┗[kyowa_t@k... ] @ 2288 2007-07-13 12:32 ┗[negishi@c... ]