sql >> Databasteknik >  >> RDS >> Mysql

Hur tillåter man tom sträng för heltal i MySQL?

Det finns två sätt att göra detta.

  1. För aktuell Mysql-session (tillfällig lösning)

Kör först frågan för att få aktuellt SQL-läge för 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)

Om resultatet innehåller STRICT_TRANS_TABLES måste du ta bort det värdet för att tillåta infogningsfråga att passera NULL-värdet. Se till att din mysql-användare har behörighet att tillämpa dessa ändringar och starta om Mysql Server efter att ha tillämpat detta.

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

Du måste uppdatera filen my.cnf. Platsen för den filen är:\etc\my.cnf eller \etc\mysql\mysql.cnf

Det kommer att finnas några standardparametrar inställda under [mysqld] som

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

Lägg bara till en rad under den

sql-mode=""

Se till att starta om Mysql Server efter att du har ändrat den här filen. Normalt är root-användare ägare till filen så du måste logga in med root-användare på servern.

För mer information om vad det här SQL-läget gör.

STRICT_TRANS_TABLES

Aktivera strikt SQL-läge för transaktionslagringsmotorer, och när det är möjligt för icke-transaktionella lagringsmotorer. Mer information finns i Strikt SQL-läge.

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

NO_AUTO_CREATE_USER

Förhindra att GRANT-satsen automatiskt skapar nya användarkonton om den annars skulle göra det, om inte autentiseringsinformation anges. Uttrycket måste ange ett icke-tomt lösenord med IDENTIFIED BY eller en autentiseringsplugin med IDENTIFIED WITH.

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

NO_ENGINE_SUBSTITUTION

Kontrollera automatiskt utbyte av standardlagringsmotorn när en sats som CREATE TABLE eller ALTER TABLE anger en lagringsmotor som är inaktiverad eller inte kompilerad i.

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



  1. Hur infogar man en mikrosekund-precision datetime i mysql?

  2. SYSUTCDATETIME() vs GETUTCDATE() i SQL Server:Vad är skillnaden?

  3. Hur man låser en rad för att välja i MySQL

  4. Finns det ett sätt att hämta autoinkrement-ID från ett förberett uttalande