我已经对MySQL的命令LOAD
进行了一些研究以加载文件。我无法找到问题的答案。
是否可以使用LOAD clausure从.xml文件加载数据到其他数据类型 列比VARCHAR或INT?
对于我的项目,我需要使用double或float数据类型,我发现大多数示例只使用varchar并且为记录ID增加int。
编辑:希望这次我能说清楚。我有这样的表RECORDS:
___________________________________
| ID | IDPLACE | VALUE | DATETIME |
| int | int | float | datetime |
该值可以是小数点。
我有一个像这样的xml文件。
<data>
<DateTime>12/3/2015 19:15:44</DateTime>
<place value="0.00000">1</place>
<place value="0.00000">10</place>
<place value="5.26316">11</place>
<place value="100.00000">12</place>
<place value="100.00000">13</place>
<place value="91.66667">14</place>
<place value="8.33333">15</place>
<place value="100.00000">16</place>
<place value="100.00000">17</place>
<place value="100.00000">18</place>
<place value="100.00000">19</place>
<place value="77.27273">2</place>
<place value="8.33333">20</place>
<place value="0.00000">3</place>
<place value="94.73684">4</place>
<place value="100.00000">5</place>
<place value="0.00000">6</place>
<place value="100.00000">7</place>
<place value="10.52632">8</place>
<place value="23.80952">9</place>
</data>
现在我正在使用C#脚本使用INSERT逐行将这些数据放入表中。从脚本我想要提供服务。 但我想到了使用LOAD命令创建一个过程,将这些数据插入到没有该服务的表中,仅由MySQL服务器处理。对于DATETIME列,我将使用TIMESTAMP或DATETIME.NOW,因此它不会包含在.xml文件中。
这样的事情可能吗?
答案 0 :(得分:-1)
我不完全理解你的问题。如果您询问是否可以将.xml中的值插入到MySql数据表而不使用列数据类型VARCHAR,我的答案就在这里:
对于float或double,您可以使用以下数据类型:
FLOAT(M,D) DOUBLE(M,d) DECIMAL(M,D) 详细信息:您可以定义显示长度(M)和小数位数(D)
您也可以在插入之前或之后在select语句中使用解析,如:
myparsedDecimal = CAST(decimalBeforeParse AS DECIMAL(10,6))