使用mysql加载非varchar变量

时间:2017-11-21 20:19:25

标签: mysql xml types command load

我已经对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文件中。

这样的事情可能吗?

1 个答案:

答案 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))