目前,我们有一个类似于此的表:
---------------------
ID | AField | BField|
---------------------
ID为自动增量
如何创建一个CSV,让数据库自动使用自动增量编号填充ID字段?
我们尝试了以下CSV但不起作用:
afieldvalue, bfieldvalue (With Column definition but still doesn't work)
0,afieldvalue,bfieldvalue
NULL,afieldvalue,bfieldvalue
答案 0 :(得分:46)
最好的办法是在CSV中包含2个非自动增量列,然后在加载数据infile语句中将ID列显式设置为NULL。
这样的事情:
LOAD DATA INFILE '/tmp/data.csv'
INTO TABLE your_table
FIELDS TERMINATED BY ','
(AField, BField)
SET ID = NULL;
答案 1 :(得分:5)
你可以"省略"通过在行的开头放置分隔符符号来标识数据行中的ID字段,例如(对于表格的模式ID,AField,BField
):
,afieldvalue,bfieldvalue
...
SQL引擎会在读取此类csv文件时将NULL
分配给ID
字段
答案 2 :(得分:1)
尝试使用NULL作为ID字段的csv文件中的值。
答案 3 :(得分:1)
LOAD DATA INFILE' /tmp/data.csv' INTO TABLE your_table FIELDS终止于','由' \ r'终止的线路 (AField,BField);
答案 4 :(得分:0)
NULL
在MySQL中被读取为STRING。如果要在MySQL列中使用空值,请使用\N
代替“NULL”。这将解决问题,您将获得所需的结果。
答案 5 :(得分:0)
如果您只有少量列,则可以命名它们:
<textField bookmarkLevel="1">
<reportElement x="0" y="0" width="100" height="20"/>
<textElement lineSpacing="Single"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{FIELD_NAME}]]></textFieldExpression>
<anchorNameExpression><![CDATA[$F{FIELD_NAME}]]></anchorNameExpression>
</textField>
(假设只有ID&amp; AField)
答案 6 :(得分:-1)
LINES TERMINATED BY '\r\n'
使用文本文件时,这是我成功的关键