mysql - Mysql 中第 1 行的列“eordervolumeeuro”的数据被截断。我在将一些数字加载为浮点数时遇到问题
问题描述
我正在尝试从 txt 文件加载数据,对于最后两个字段,我需要将数据加载为浮点数而不是 varchar,但即使我用点替换逗号,如果我为最后两个字段保留 varchar 类型,一切似乎是对的;如果我使用 float Mysql 返回此错误“错误 1265 (01000):第 1 行的列 'eordervolumeeuro' 的数据被截断”。这是我的桌子的描述
mysql> describe ot;
+--------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+--------------+------+-----+---------+-------+
| sys | varchar(100) | YES | | NULL | |
| client | varchar(20) | YES | | NULL | |
| ARE | int | YES | | NULL | |
| SalesDocument | int | YES | | NULL | |
| item | int | YES | | NULL | |
| salesdoctype | varchar(20) | YES | | NULL | |
| POtype | varchar(15) | YES | | NULL | |
| profitcenter | varchar(15) | YES | | NULL | |
| orderquantity | int | YES | | NULL | |
| quantityunit | varchar(100) | YES | | NULL | |
| material | varchar(100) | YES | | NULL | |
| MLFB | varchar(100) | YES | | NULL | |
| GCK | varchar(30) | YES | | NULL | |
| PCK | varchar(30) | YES | | NULL | |
| description | varchar(100) | YES | | NULL | |
| orderchannelconsolidated | varchar(100) | YES | | NULL | |
| customer | varchar(15) | YES | | NULL | |
| IFA | varchar(50) | YES | | NULL | |
| salesorg | varchar(100) | YES | | NULL | |
| salesoffice | varchar(100) | YES | | NULL | |
| salesofficename | varchar(100) | YES | | NULL | |
| companycountry | varchar(100) | YES | | NULL | |
| division | varchar(100) | YES | | NULL | |
| divisiondesc | varchar(150) | YES | | NULL | |
| businessUnit | varchar(100) | YES | | NULL | |
| createdby | varchar(100) | YES | | NULL | |
| createdon | varchar(100) | YES | | NULL | |
| ordertype | varchar(100) | YES | | NULL | |
| ordervolumeeuro | float | YES | | NULL | |
| eordervolumeeuro | float(5,5) | YES | | NULL | |
+--------------------------+--------------+------+-----+---------+-------+
30 rows in set (0.01 sec)
这是我需要上传的一种数据行
SWP01 100 5180 310799105 1000 ZPCA DFUE P50XE2A 1 Piece 8GF9872 8GF9872 P310 5554 DISTRIBUTION TERMINAL BLOCK 4 POLE 100A EDI 1012229 275091843 50Q0 50Q1 LV Direzionale Italy QA SSI LP (SSI045) SI EP SWE0012S dic 31 2019 12:00 AM eOrder - IDOC 53.89 53.89
我对 txt 文件使用 UTF-8,无论如何 ANSI 给了我同样的问题,还有其他问题。
这就是发生的事情:
mysql> load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\test.txt' into table ot fields terminated by '\t'
ignore 1 lines;
ERROR 1265 (01000): Data truncated for column 'eordervolumeeuro' at row 1
ot | CREATE TABLE `ot` (
`sys` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`client` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`ARE` int DEFAULT NULL,
`SalesDocument` int DEFAULT NULL,
`item` int DEFAULT NULL,
`salesdoctype` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`POtype` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`profitcenter` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`orderquantity` int DEFAULT NULL,
`quantityunit` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`material` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`MLFB` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`GCK` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`PCK` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`description` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`orderchannelconsolidated` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`customer` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`IFA` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`salesorg` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`salesoffice` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`salesofficename` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`companycountry` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`division` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`divisiondesc` varchar(150) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`businessUnit` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`createdby` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`createdon` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`ordertype` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`ordervolumeeuro` float DEFAULT NULL,
`eordervolumeeuro` float(5,5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
提前致谢。
解决方案
推荐阅读
- ruby - 使用包含?命令搜索包含数字和字母混合的字符串
- css - 如何为活动的引导程序 4 导航栏项目添加背景颜色
- r - 在 R 中创建具有固定断点的调色板
- applescript-objc - 使用 AppleScript-Objc 确定进度指示器
- java - 如何在@PostMapping 中返回值
- java - 对目标文件的引用。为什么/如何创建和使用它?
- python - 从数据库读取时在 Dask 数据帧中设置分区大小的问题
- ruby-on-rails - 如何在应用程序中制作自定义配置文件(它包括站点名称、徽标和 css 等变量),以便为不同的网站重用相同的代码库?
- android - 在 onMapReady 内部,Picasso 不会第一次加载图像,而是在重新创建活动后加载图像
- python - 在同步代码线程内具有回调的 Django 通道