Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да разреша празен низ за цяло число в MySQL?

Има 2 начина да направите това.

  1. За текуща сесия на Mysql (временно решение)

Първо изпълнете заявка, за да получите текущия SQL режим на вашия mysql сървър.

    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

Просто добавете един ред под това

sql-mode=""

Уверете се, че рестартирате Mysql Server след промяна на този файл. Обикновено root потребителят ще бъде собственик на файла, така че трябва да влезете с root потребител на сървъра.

За повече подробности, за да разберете какво прави този режим на SQL.

STRICT_TRANS_TABLES

Активирайте строг SQL режим за транзакционни машини за съхранение и, когато е възможно, за машини за съхранение без транзакции. За подробности вижте строг SQL режим.

Вижте:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables

НЕ_AUTO_CREATE_USER

Не позволявайте на оператора GRANT да създава автоматично нови потребителски акаунти, ако иначе би го направил, освен ако не е посочена информация за удостоверяване. Инструкцията трябва да посочи непразна парола, използваща IDENTIFIED BY или плъгин за удостоверяване, използващ IDENTIFIED WITH.

Вижте:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_create_user

БЕЗ ЗАМЕНА НА_ENGINE_ENGINE

Контролирайте автоматичното заместване на механизма за съхранение по подразбиране, когато израз като CREATE TABLE или ALTER TABLE определя машина за съхранение, която е деактивирана или не е компилирана.

Вижте:http://dev.mysql.com /doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да съхранявате множество стойности в една колона, където използвате по-малко памет?

  2. Съвети за мигриране от HAProxy към ProxySQL

  3. Как да използвам израз IF в заявка за присъединяване към MySQL?

  4. MySQL RAND() началните стойности почти се повтарят

  5. Как да избегнем вмъкването на дублиращи се записи в MySQL