0

レコードの作成時に、レコードに日付と時刻を割り当てる必要があります(作成時)

私はこのステートメントを使おうとしましたが、エラーメッセージを受け取るたびに:

'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL,

視覚的に編集しようとすると、PHPMYSQLはフィールドのデータ型が正常に変更されたというメッセージを表示していましたが、そうではありませんでした。

結論; フィールドの値を作成時として設定するには、適切なデータ型/関数を知る必要があります。

ありがとう

4

1 に答える 1

1

レコードが作成された日付を自動的に設定するフィールドを取得するには、次を使用します。

OrderDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;

MySQL 5.6より前では、自動初期化するためにフィールドタイプが必要な場合は、次のようDATETIMEに定義できます。OrderDate

OrderDate DATETIME DEFAULT 0 NOT NULL;

を使用しTRIGGERて日付を割り当てます。

DROP TRIGGER IF EXISTS atable_insert_before;

DELIMITER //

CREATE
TRIGGER atable_insert_before
    BEFORE INSERT ON 
        atable
    FOR EACH ROW
BEGIN
    IF IFNULL(NEW.OrderDate, 0) <= 0
    THEN
        SET NEW.OrderDate = NOW();
    END IF;
END;
//

DELIMITER ;

MySQL 5.6では、DATETIMEフィールドは現在のように自動初期化できTIMESTAMPます。http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.htmlを参照してください

于 2013-03-27T03:46:42.323 に答える