sql >> データベース >  >> RDS >> Mysql

Mysql datetimeDEFAULTCURRENT_TIMESTAMPエラー

    DEFAULT CURRENT_TIMESTAMP DATETIMEのサポート (データ型)はMySQL5.6で追加されました。

    5.5以前のバージョンでは、これは TIMESTAMPにのみ適用されていました。 (データ型)列。

    BEFORE INSERTを使用することができます 5.5でトリガーして、デフォルト値を列に割り当てます。

     DELIMITER $$
    
     CREATE TRIGGER ...
     BEFORE INSERT ON mytable
     FOR EACH ROW
     BEGIN
        IF NEW.mycol IS NULL THEN
           SET NEW.mycol = NOW();
        END IF;
     END$$
    

    (列に格納されている値に対するクエリの)大文字と小文字の区別は、collationによるものです。 カラムに使用されます。 _ciで終わる照合 大文字と小文字は区別されません。例: latin1_swedish_ci 大文字と小文字は区別されませんが、 latin1_general_cs 大文字と小文字が区別されます。

    SHOW CREATE TABLE fooからの出力 文字セットと文字タイプ列の照合が表示されます。これは、列ごとのレベルで指定されます。テーブルレベルで指定された「デフォルト」は、新しい列の定義で文字セットが指定されていない場合に、テーブルに追加された新しい列に適用されます。

    更新

    Kaiiは、「大文字と小文字の区別」に関する私の回答は、列内に格納されている値、およびクエリが"New"の値を含む列から値を返すかどうかを扱っていると指摘しました。 "t.col = 'new'"のような述語で返されます 。

    識別子に関するKaiiの回答を参照してください (例:テーブル名)WindowsとLinuxでは(デフォルトで)処理が異なります。



    1. MySQLクライアントのデフォルトのポケットベルをどのように設定しますか?

    2. SQLのSUBSTRINGコマンド:入門書

    3. PHP ::PDOを使用して変数でmysqlスクリプトを実行する方法は?

    4. マルチクラウド環境全体でのPostgreSQLセキュリティの標準化