我从人口普查局下载了几个数据库-事实查询器:
https://factfinder.census.gov/faces/tableservices/jsf/pages/productview.xhtml?pid=ACS_pums_csv_2012_2016&prodType=document
开始使用加州住房数据库,使用CVed我取出所有的列,我不需要,然后继续创建一个模型在MySQL工作台,我后来通过命令行变成一个数据库:
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema Census
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema Census
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Census` DEFAULT CHARACTER SET utf8 ;
USE `Census` ;
-- -----------------------------------------------------
-- Table `Census`.`Housing`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Census`.`Housing` (
`SERIALNO` BIGINT(13) NOT NULL,
`DIVISION` INT(9) NULL,
`PUMA` INT(4) NULL,
`REGION` INT(1) NULL,
`ST` INT(1) NULL,
`ADJHSG` INT(7) NULL,
`ADJINC` INT(7) NULL,
`FINCP` INT(6) NULL,
`HINCP` INT(6) NULL,
`R60` INT(1) NULL,
`R65` INT(1) NULL,
PRIMARY KEY (`SERIALNO`))
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
创建数据库后,我继续导入数据:
LOAD DATA INFILE "C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/Housing_California.csv"
INTO TABLE housing
CHARACTER SET latin1
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n';
但它不起作用,因为出现以下错误消息:
错误1366(HY 000):整数值不正确:第15行“FINCP”列的“”
现在,我知道在我的那一行我有一个空白值,那一列指的是家庭收入,在某些情况下是0,所以人口普查局把它留为空白:
2012000000135,9,6515,4,6,1045360,1056030,,43100,1,0
我可以把所有的空白单元格都改成0,但我觉得必须有更好的方法来处理事情。
希望你能给予我一个提示。
3条答案
按热度按时间58wvjzkj1#
这个可以帮你
您可以更改导入,而不是更改表定义
这样,FINCP的瓦尔在插入之前存储在var中,您可以检查正确的结果
在我的建议中,如果null被赋给'',但是你可以赋给你喜欢的(适当的)值
5jvtdoz22#
Kiko软件,
好吧,所以我读了你张贴的链接,我的命令行结束了;
我得到了这个信息
'对于第12 t行的列'R65',整数值:“
那是什么意思?
这是第12行的数据:
2012000000318,3,1602,2,17,1045360,1056030,,,,
x6492ojm3#
当您尝试在mysql表中插入数据时,如果设置了请求填充所有字段的,则会收到此错误。
您可以配置您的mysql设置为NULL,如果你不发送值。临时解决方案(直到你重新启动服务器)运行这个查询:设置@@全局.sql模式= '无自动创建用户,无引擎替换';
也可以在my.ini文件中设置。下面是模式的详细信息:http://webnetkit.com/error-sqlstatehy000-general-error-1366-incorrect-integer-value-for-column/