web-dev-qa-db-fra.com

Valeur décimale (entière) incorrecte: '' mySQL

Dans la base de données MySQL Workbench, l'une des tables a des attributs de latitude, longitude et district

lat: décimal (10,8)

lng: décimal (11,8)

quartier: int (4)

J'essaie d'importer des données du fichier .csv vers cette table

ERROR 1366: 1366: Incorrect decimal value: '' for column 'lat' at row 1
SQL Statement:
ERROR 1366: 1366: Incorrect integer value: '' for column 'district' at row 1
SQL Statement:
INSERT INTO `db`.`myTable` (`id`, `name_en`, `icon`, `lat`, `lng`, `district`, `city`, `postal_code`)
    VALUES ('686', 'Name',?, '', '', '','1', 'P.O. Box 1111')
12
Maha

Le mode SQL strict est activé et vous essayez de passer une chaîne vide ('') comme valeur pour les champs décimaux dans l'insertion. Une chaîne vide est une valeur non valide pour un champ numérique et en mode sql strict mysql génère une erreur si vous essayez d'insérer des données non valides dans une colonne, plutôt que de fournir un avertissement et d'utiliser la valeur par défaut (0 pour les colonnes numériques) du type de données de la colonne particulière:

Le mode strict contrôle la façon dont MySQL gère les valeurs non valides ou manquantes dans les instructions de changement de données telles que INSERT ou UPDATE. Une valeur peut être invalide pour plusieurs raisons. Par exemple, il peut avoir le mauvais type de données pour la colonne ou être hors de portée. Une valeur est manquante lorsqu'une nouvelle ligne à insérer ne contient pas de valeur pour une colonne non NULL qui n'a pas de clause DEFAULT explicite dans sa définition. (Pour une colonne NULL, NULL est inséré si la valeur est manquante.) Le mode strict affecte également les instructions DDL telles que CREATE TABLE.

Si le mode strict n'est pas en vigueur, MySQL insère des valeurs ajustées pour les valeurs non valides ou manquantes et génère des avertissements (voir Section 13.7.5.40, "Afficher la syntaxe des avertissements"). En mode strict, vous pouvez produire ce comportement en utilisant INSERT IGNORE ou UPDATE IGNORE.

Supprimez le mode SQL strict pour la session avant de démarrer l'importation:

SET SESSION sql_mode = ''
24
Shadow