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

MySQLで整数に空の文字列を許可するにはどうすればよいですか?

    これを行うには2つの方法があります。

    1. 現在のMysqlセッション(一時的な解決策)の場合

    最初にクエリを実行して、mysqlサーバーの現在のSQLモードを取得します。

        mysql> SELECT @@sql_mode;
        +----------------------------------------------------------------+
        | @@sql_mode                                                     |
        +----------------------------------------------------------------+
        |STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  |
        +----------------------------------------------------------------+
        1 row in set (0.00 sec)
    

    結果にSTRICT_TRANS_TABLESが含まれている場合 、挿入クエリがNULL値を渡せるようにするには、その値を削除する必要があります。 mysqlユーザーがこの変更を適用し、これを適用した後にMysqlサーバーを再起動する権限を持っていることを確認してください。

        SET GLOBAL sql_mode = '';
    
    1. Mysqlの存続期間(永続的なソリューション)

    my.cnfファイルを更新する必要があります。そのファイルの場所は次のとおりです:\ etc\my.cnfまたは\etc\ mysql \ mysql.cnf

    のような[mysqld]の下にいくつかのデフォルトパラメータが設定されます
    [mysqld]
    innodb_file_per_table=1
    default-storage-engine=MyISAM
    performance-schema=0
    max_allowed_packet=268435456
    open_files_limit=10000
    

    その下に1行追加するだけです

    sql-mode=""
    

    このファイルを変更した後は、必ずMysqlServerを再起動してください。通常、rootユーザーがファイルの所有者になるため、サーバーでrootユーザーでログインする必要があります。

    このSQLモードの機能を理解するための詳細については。

    STRICT_TRANS_TABLES

    トランザクションストレージエンジンに対して厳密なSQLモードを有効にし、可能な場合は非トランザクションストレージエンジンに対して有効にします。詳細については、厳密なSQLモードを参照してください。

    参照: http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables

    NO_AUTO_CREATE_USER

    認証情報が指定されていない限り、GRANTステートメントが新しいユーザーアカウントを自動的に作成しないようにします。ステートメントは、IDENTIFIED BYを使用して空でないパスワードを指定するか、IDENTIFIEDWITHを使用して認証プラグインを指定する必要があります。

    参照: http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_create_user

    NO_ENGINE_SUBSTITUTION

    CREATETABLEやALTERTABLEなどのステートメントで、無効になっている、またはコンパイルされていないストレージエンジンが指定されている場合は、デフォルトのストレージエンジンの自動置換を制御します。

    参照: http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution



    1. RACシーケンスの競合

    2. SQLServerでの可変メモリ許可のトラブルシューティング

    3. MySQLのテキスト列内の文字列を検索します

    4. Oracleで小数なしで数値をフォーマットする4つの方法