Jo *_* E. 19 mysql database import phpmyadmin
我在本地计算机上有一个数据库,我想将数据导入到我的主机上的数据库.这两个数据库的是相同的,相同的table names
,column names
等等.
当我export
从我的本地数据库通过表phpmyadmin
和import
它通过phpmyadmin在我的主机上弹出一个错误弹出告诉我有重复的条目,primary key
并停止整个操作.
如何通过phpmyadmin导入数据,跳过重复的条目,并在流程结束时显示重复项的列表?
我可以做的解决方案是在托管中调用db中主键的所有值,并在导入之前过滤重复项.但我想知道phpmyadmin是否有快速解决方案?
nl-*_*l-x 38
在phpMyAdmin的"设置"选项卡中,您可以尝试检查以下值:
如果您使用的是CSV格式:
如果您使用的是SQL格式:
有几种方法可以做你想要的:
野蛮的方式:
TRUNCATE TABLE yourTbl; -- emtpies out the table
Run Code Online (Sandbox Code Playgroud)
然后导入,但您可能会丢失数据,因此可能会创建一个备份表.考虑到所有事情,只是不要这样做,检查下面列出的替代方案:
编写自己的INSERT
查询,带IGNORE
子句:
INSERT IGNORE INTO yourTbl -- as shown in the linked duplicate
Run Code Online (Sandbox Code Playgroud)
但是,由于您要导入文件,因此查询很可能是一个LOAD DATA [LOCAL] INFILE
.正如您在手册中看到的那样,您也可以轻松地IGNORE
向该查询添加:
LOAD DATA LOCAL INFILE '/path/to/files/filename1.csv' IGNORE -- IGNORE goes here
INTO TABLE your_db.your_tbl
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(`field1`,`field2`);
Run Code Online (Sandbox Code Playgroud)
而已.不要担心,如果你不太习惯这样编写自己的查询,还有其他方法可以做你想做的事情:
CLI方式:
mysqlimport -i dbname fileToImport
# Or
mysqlimport --ignore dbname fileToImport
Run Code Online (Sandbox Code Playgroud)
另外CLI,创建一个包含上述LOAD DATA
查询的文件,然后:
$: mysql -u root -p
*********** #enter password
mysql> source /path/to/queryFile.sql
Run Code Online (Sandbox Code Playgroud)
这要求您有权访问命令行,并运行此命令这是MySQL的手册页
使用phpMyAdmin,在导入时,你会找到一个复选框,上面写着"忽略重复",检查并导入.这是一个包含屏幕截图的页面
您也可以选择"忽略错误",但这是另一种蛮力方法,我不建议这样做.
归档时间: |
|
查看次数: |
47153 次 |
最近记录: |