mysql:final字段中的空字段,尽管文件内容包含数据

brqmpdu1  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(361)

我有一个数据文件,我正在使用插入到数据库。如您所见,最后一个字段的值在文件的两行中都是4。

2018-08-03 07:04:20     2       NODE_HEALTH_CHECK       Report_administrator_03082018065538     1       2018-08-03 07:04:17     2018-08-03 07:04:20     00:00:00:2:7210COMPLETED       FAILED  0       PRE_INSTALL     4
2018-08-03 12:33:30     2       NODE_HEALTH_CHECK       Report_administrator_03082018110136     2       2018-08-03 12:17:57     2018-08-03 12:33:30     00:00:15:33:116100     COMPLETED       SUCCESS 2       PRE_INSTALL     4

我通过命令将其插入表中

LOAD DATA INFILE '$bcpFileNhcDetailsLogs' INTO TABLE details_logs

表after的内容对于两者都为空。

time    siteid  jobType job_name        number_of_network_elements      start_time      end_time        duration        progress_percentage     status  result  health_status  healthy_nodes_count     category        netypeid1
2018-08-03 07:04:20     2       NODE_HEALTH_CHECK       Report_administrator_03082018065538     1       2018-08-03 07:04:17     2018-08-03 07:04:20     00:00:00:2:7210COMPLETED       FAILED  0       0       4       NULL
2018-08-03 12:33:30     2       NODE_HEALTH_CHECK       Report_administrator_03082018110136     2       2018-08-03 12:17:57     2018-08-03 12:33:30     00:00:15:33:116100     COMPLETED       SUCCESS 2       0       4       NULL

我不明白为什么。请参见表说明,特别是最后一个字段netypeid。

Field   Type    Null    Key     Default Extra
time    datetime        NO      MUL     NULL
siteid  smallint(5) unsigned    NO              NULL
jobType varchar(32)     NO              NULL
job_name        varchar(100)    NO              NULL
number_of_network_elements      smallint(5) unsigned    NO              NULL
start_time      datetime        NO              NULL
end_time        datetime        NO              NULL
duration        varchar(100)    NO              NULL
progress_percentage     smallint(5) unsigned    NO              NULL
status  varchar(20)     NO              NULL
result  varchar(20)     NO              NULL
health_status   varchar(20)     YES             NULL
healthy_nodes_count     smallint(5) unsigned    YES             NULL
category        varchar(32)     YES             NULL
netypeid        smallint(5) unsigned    YES             NULL
e5nszbig

e5nszbig1#

似乎输入数据中没有与数据表定义中的列匹配的列集。
他们排在第一排的方式:

time = 2018-08-03 07:04:20
siteid = 2
jobType = NODE_HEALTH_CHECK       
job_name = Report_administrator_03082018065538
number_of_network_elements = 1 
start_time = 2018-08-03 07:04:17 
end_time = 2018-08-03 07:04:20 
duration = 00:00:00:2:721 
progress_percentage = 0 
status = COMPLETED 
result = FAILED 
health_status = 0 
healthy_nodes_count = PRE_INSTALL    ### Missing value from imported data - displays as '0'
category = 4 
netypeid1 = NULL

从它看起来的样子,我猜你的 health_status 数据导入中缺少列,导致导入的数据向左移动一列。将null添加到 nettypeid 字段和导入的 healthy_nodes_count 正在设置为 0 因为导入的字段需要 smallint 而是接收一个varchar字符串。
如果删除 healthy_nodes_count 列,导入应该可以正常工作。否则,您需要确保在导入之前将该字段添加到数据中。

iqxoj9l9

iqxoj9l92#

感谢各位,在你们的提示和我自己的灯泡时刻之间,我意识到专栏的健康状况是多余的。把它从table上掉下来,我们就没事了!
非常感谢

相关问题