sql >> Database teknologi >  >> RDS >> Mysql

Hvordan tillader man tom streng for heltal i MySQL?

Der er 2 måder at gøre dette på.

  1. Til aktuel Mysql-session (midlertidig løsning)

Udfør først forespørgsel for at få den aktuelle SQL-tilstand på din mysql-server.

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

Hvis resultatet indeholder STRICT_TRANS_TABLES , skal du fjerne denne værdi for at tillade indsættelsesforespørgsel at sende NULL-værdi. Sørg for, at din mysql-bruger har privilegier til at anvende disse ændringer, og genstart Mysql Server efter at have anvendt dette.

    SET GLOBAL sql_mode = '';
  1. For Life Time of Mysql (permanent løsning)

Du skal opdatere filen my.cnf. Placeringen af ​​denne fil er:\etc\my.cnf eller \etc\mysql\mysql.cnf

Der vil være nogle standardparametre indstillet under [mysqld] som

[mysqld]
innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000

Tilføj blot en linje under den

sql-mode=""

Sørg for at genstarte Mysql Server efter at have ændret denne fil. Normalt vil root-brugeren være ejeren af ​​filen, så du skal logge ind med root-brugeren på serveren.

For flere detaljer for at forstå, hvad denne SQL-tilstand gør.

STRICT_TRANS_TABLES

Aktiver streng SQL-tilstand for transaktionslagringsmotorer, og når det er muligt for ikke-transaktionelle lagringsmotorer. For detaljer, se Streng SQL-tilstand.

Se:http://dev.mysql.com /doc/refman/5.7/da/sql-mode.html#sqlmode_strict_trans_tables

NO_AUTO_CREATE_USER

Undgå, at GRANT-erklæringen automatisk opretter nye brugerkonti, hvis den ellers ville gøre det, medmindre der er angivet godkendelsesoplysninger. Erklæringen skal angive en ikke-tom adgangskode ved hjælp af IDENTIFIED BY eller et autentificeringsplugin, der bruger IDENTIFIED WITH.

Se:http://dev.mysql.com /doc/refman/5.7/da/sql-mode.html#sqlmode_no_auto_create_user

NO_ENGINE_SUBSTITUTION

Kontroller automatisk udskiftning af standardlagermotoren, når en sætning såsom CREATE TABLE eller ALTER TABLE angiver en lagermotor, der er deaktiveret eller ikke kompileret i.

Se:http://dev.mysql.com /doc/refman/5.7/da/sql-mode.html#sqlmode_no_engine_substitution



  1. PHP MySQL-forespørgsel Hvor x =$variabel

  2. Søg efter "hele ord match" med SQL Server LIKE-mønster

  3. Sådan konfigureres databasemail i SQL Server

  4. Sådan ændres skrivebeskyttet tilladelse for at indstille en ny værdi for MySQL-serversystemvariablen