質問: 時間を自動計算してディフォルトに設定 以下のようなテーブルを作りたいと思うのですが、 create table hogetbl ( id bigint(20) not null auto_increment, product_code varchar(20) not null default, start_time datetime not null default '0000-00-00 00:00:00', end_time datetime not null default '0000-00-00 00:00:00', sub_time datetime not null default(ここにend_time-start_timeの値を設定したい), primary key (id) ) type=myisam; 見たとおり、インサート時、sub_timeのところに自動で end_time - start_time の、差分値が挿入されるようにしたいのですが、構文が思いつきません。 そもそもこういったことはcreate tableで可能なのでしょうか・・・? サーババージョンは4.1.22です。 宜しくお願いします。
回答: >そもそもこういったことはcreate tableで可能なのでしょうか・・・? 残念ながら、mysqlでは「default句に関数や式」を書くことはできません。 http://dev.mysql.com/doc/refman/4.1/ja/create-table.html mysql 5.0以降なら、トリガで実装するといった方法も考えられますけどね。