MySQL phpMyAdmin 在没有主键的情况下从文本导入?
MySQL phpMyAdmin import from text without having the primary key?
如何在不在文本文件中提供主键的情况下将数据从文本文件导入数据库?
所以我有一个 table,其中有 3 列:ID、名字、姓氏。
ID 自动递增。我想像这样从文本文件中读取名称:
约翰·史密斯;
迈克尔,乔丹;
我不想使用主键,因为我不知道 table 中的下一个主键是什么,应该通过自动递增来完成。
如果我像这样使用文本文件,则会收到错误消息:列数无效...
设置:
列分隔:,
包含的列:“
转义的列:\
行终止于:;
如果我这样使用文本文件:
21,约翰,史密斯; 22,迈克尔,乔丹;
文件可以导入(奇怪的是它也试图读取第3个空行,并发送错误,这个我也不明白,但它是另一个话题)
这是来自 table 的转储:
CREATE TABLE IF NOT EXISTS `LoginData2` (
`FirstName` varchar(10) NOT NULL,
`LastName` varchar(10) NOT NULL,
`ID` int(4) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
您的规格说明列包含:“
我在列周围添加了引号(并去掉了空格):
"John","Smith";"Michael","Jordan";
AND 将自动递增 ID
列放在最后。使用这些设置可以正常导入。
这是我的测试 table 的转储。将其与您的进行比较,看看有什么不同。另外,尝试创建此 table 并导入上面的数据以查看其工作原理。
CREATE TABLE IF NOT EXISTS `users` (
`firstname` varchar(100) NOT NULL,
`lastname` varchar(100) NOT NULL,
`id` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
ALTER TABLE `users`
ADD PRIMARY KEY (`id`);
ALTER TABLE `users`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7;
更新: 当您使用 phpMyAdmin 导入时,请确保导入设置正确。您的设置不是默认设置。我相信您需要使用 LOAD DATA 选择 csv,然后按照您的说明填写所有分隔符。
如何在不在文本文件中提供主键的情况下将数据从文本文件导入数据库?
所以我有一个 table,其中有 3 列:ID、名字、姓氏。
ID 自动递增。我想像这样从文本文件中读取名称:
约翰·史密斯; 迈克尔,乔丹;
我不想使用主键,因为我不知道 table 中的下一个主键是什么,应该通过自动递增来完成。
如果我像这样使用文本文件,则会收到错误消息:列数无效...
设置:
列分隔:,
包含的列:“
转义的列:\
行终止于:;
如果我这样使用文本文件:
21,约翰,史密斯; 22,迈克尔,乔丹;
文件可以导入(奇怪的是它也试图读取第3个空行,并发送错误,这个我也不明白,但它是另一个话题)
这是来自 table 的转储:
CREATE TABLE IF NOT EXISTS `LoginData2` (
`FirstName` varchar(10) NOT NULL,
`LastName` varchar(10) NOT NULL,
`ID` int(4) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
您的规格说明列包含:“
我在列周围添加了引号(并去掉了空格):
"John","Smith";"Michael","Jordan";
AND 将自动递增 ID
列放在最后。使用这些设置可以正常导入。
这是我的测试 table 的转储。将其与您的进行比较,看看有什么不同。另外,尝试创建此 table 并导入上面的数据以查看其工作原理。
CREATE TABLE IF NOT EXISTS `users` (
`firstname` varchar(100) NOT NULL,
`lastname` varchar(100) NOT NULL,
`id` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
ALTER TABLE `users`
ADD PRIMARY KEY (`id`);
ALTER TABLE `users`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7;
更新: 当您使用 phpMyAdmin 导入时,请确保导入设置正确。您的设置不是默认设置。我相信您需要使用 LOAD DATA 选择 csv,然后按照您的说明填写所有分隔符。