Mah*_*aha 12 mysql integer decimal
在mySQL workbench数据库中,其中一个表具有纬度,经度和区域属性
lat:十进制(10,8)
lng:十进制(11,8)
地区:int(4)
我正在尝试将.csv文件中的数据导入到此表中
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')
Run Code Online (Sandbox Code Playgroud)
Sha*_*dow 24
您已启用严格的sql模式,并尝试将空字符串('')作为插入中的十进制字段的值传递.空字符串是数字字段的无效值,在严格的sql模式下,如果尝试将无效数据插入列中,mysql会生成错误,而不是提供警告并使用特定字符的默认值(对于数字列为0)列的数据类型:
严格模式控制MySQL如何处理数据更改语句(如INSERT或UPDATE)中的无效或缺失值.由于多种原因,值可能无效.例如,列可能具有错误的数据类型,或者可能超出范围.当要插入的新行不包含其定义中没有显式DEFAULT子句的非NULL列的值时,缺少值.(对于NULL列,如果缺少值,则插入NULL.)严格模式也会影响DDL语句,例如CREATE TABLE.
如果严格模式不起作用,MySQL会为无效值或缺失值插入调整值并产生警告(请参见第13.7.5.40节"显示警告语法").在严格模式下,可以使用INSERT IGNORE或UPDATE IGNORE生成此行为.
在开始导入之前删除会话的严格sql模式:
SET SESSION sql_mode = ''
Run Code Online (Sandbox Code Playgroud)