web*_*orm 14 import phpmyadmin auto-increment
我在文本文件中有一些批量数据需要导入到MySQL表中.该表由两个字段组成..
文本文件是一个大的名称集合,每行有一个名称...
(例)
John Doe
Alex Smith
Bob Denver
Run Code Online (Sandbox Code Playgroud)
我知道如何通过phpMyAdmin导入文本文件,但据我所知,我需要导入与目标表具有相同字段数的数据.有没有办法将我的文本文件中的数据导入一个字段并让ID字段自动自动增加?
预先感谢您的任何帮助.
Que*_*eue 16
我使用的另一种方法不需要重新排序表的字段(假设自动增量字段是第一列)如下:
1) Open/import the text file in Excel (or a similar program).
2) Insert a column before the first column.
3) Set the first cell in this new column with a zero or some other placeholder.
4) Close the file (keeping it in its original text/tab/csv/etc. format).
5) Open the file in a text editor.
6) Delete the placeholder value you entered into the first cell.
7) Close and save the file.
Run Code Online (Sandbox Code Playgroud)
现在,您将拥有一个文件,其中包含原始文件的每一行,前面有一个空列,在通过phpMyAdmin导入时,该列将转换为下一个相关的自动增量值.
Fab*_*ert 10
这是迄今为止最简单的方法:
CSV格式.然后 - 这是重要的一部分 - 在格式特定选项:
... Column names: 填写数据所用列的名称,在您的情况下为"名称".
这将导入名称并自动增加id列.你完成了!
用phpMyAdmin 4.2.7.1测试得很好.
使用LOADTABLE INFILE导入时不正确,只需将自动增量列创建为LAST列/字段...作为解析,如果您的表定义为30列,但文本文件只有1(或更少) ,它将以直接顺序首先导入前导列,因此请确保在字段之间(对于将来的任何导入),您的分隔是正确的.再次,将自动增量AFTER放入您知道的导入列数.
create table YourMySQLTable
( FullName varchar(30) not null ,
SomeOtherFlds varchar(20) not null,
IDKey int not null AUTO_INCREMENT,
Primary KEY (IDKey)
);
Run Code Online (Sandbox Code Playgroud)
请注意,IDKey在表的最后一个字段中自动递增...无论您的INPUT流文本文件是否可能比最终表实际容纳的列少.
然后,通过...导入数据
LOAD DATA
INFILE `C:\SomePath\WhereTextFileIs\ActualFile.txt`
INTO TABLE YourMySQLTable
COLUMNS TERMINATED BY `","`
LINES TERMINATED BY `\r\n` ;
Run Code Online (Sandbox Code Playgroud)
上面的示例基于逗号分隔列表,每个字段周围都有引号,例如"myfield1","anotherField","LastField".此外,终止是典型文本文件每行分隔的cr/lf
在具有全名作为单列的文本文件样本中,所有数据都将加载到FullName列中的"YourMySQLTable"中.由于IDKey位于列表的END,它仍然会自动增加1到1的指定值.并且与入站文本中的列没有任何冲突.
| 归档时间: |
|
| 查看次数: |
60036 次 |
| 最近记录: |