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

テーブルを変更できず、エラー1067が発生します無効なデフォルト値

    sql_modeと'NO_ZERO_DATE'の背景: http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html

    別のサーバーからテーブルを復元したとのことですが。 mysqldumpを使用した場合、質問に対する答えは、ダンプされたSQLのロード中にmysqlが「NO_ZERO_DATE」モードをオフにしたことです。 Mysqldump(5.5でテスト済み)は、この行をダンプされたSQLの先頭に配置します:

    /*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    

    また、ダンプのロード中に外部キーチェックやその他の便利な機能をオフにします。

    /*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    

    これは、テーブルを復元できた理由を説明していますが、変更しようとするときは、より厳しいルールでプレイする必要があります。これを本当にオーバーライドしたい場合は、変更テーブルの直前で次のことを試すことができます。

    mysql> SET SESSION sql_mode='';
    

    次に、テーブルを変更します。




    1. C#MySqlParameterの問題

    2. イベント管理データモデル

    3. MySQLデータベースからfancyboxにajaxコンテンツを動的にロードする

    4. ã、š、é、ë、ú、ü、í、žを使用したPhp/MySql配列検索