5
public function up(){

        $this->createTable('POST', array(
            'id' => 'pk',
            'isremoved' => 'integer NOT NULL',
            'removaldate' => 'timestamp NULL',
            'post' => 'text NOT NULL',
            'creationdate' => 'timestamp NOT NULL',
        ));
}

移行用のアップ機能です。ご覧のとおり、新しいテーブルを作成するためのクエリです。デフォルトでは、YII は CURRENT_TIMESTAMP に等しいタイムスタンプ列のデフォルト値を作成し、追加のパラメータを作成して ON UPDATE CURRENT_TIMESTAMP に等しく設定します。

タイムスタンプの現在の値は必要ありません。また、行の更新時にこの列を更新する必要もありません。私は何をしなければなりませんか?ちなみにあなたはMySQLを使っています

4

3 に答える 3

1

MySQL Create Table Script を活用します。

show create table tablename

これにより、次のことが得られます。

CREATE TABLE `tablename` (
....
....
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
...

それを移行に追加します。

'timestamp' => 'timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP'
于 2015-03-28T20:19:10.600 に答える
-1

たとえば null など、他のデフォルト値を設定する必要があります

public function up(){

        $this->createTable('POST', array(
            'id' => 'pk',
            'isremoved' => 'integer NOT NULL',
            'removaldate' => 'timestamp DEFAULT NULL',
            'post' => 'text NOT NULL',
            'creationdate' => 'timestamp DEFAULT NULL',
        ));
}
于 2013-05-14T08:15:48.750 に答える