我的数据库中有一个表
CREATE TABLE IF NOT EXISTS `Family` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Last_Name` varchar(25) DEFAULT NULL,
`His_F_Name` varchar(25) DEFAULT NULL,
`Her_F_Name` varchar(25) DEFAULT NULL,
`address` varchar(50) DEFAULT NULL,
`city` varchar(25) DEFAULT NULL,
`phone_number` varchar(15) DEFAULT NULL,
`Notes` text,
PRIMARY KEY (`ID`)
)
我想从csv文件更新此列表,该文件是根据id的不同数据库导出的。也就是说,如果具有相同ID的记录具有不同的地址或电话号码,我所拥有的内容应该被我的csv文件中的内容覆盖。但是,我不想覆盖Notes
字段,如果在不同的表中有一条记录引用其中一条记录,我不想弄乱链接。
(如何)可以这样做?使用phpMyAdmin
答案 0 :(得分:1)
1)使用phpmyadming csv文件导入功能(Import-> Format(选择csv))或
使用BigDump将csv-data导入MySQL
2)使用以下查询
SET SQL_SAFE_UPDATES = 0;
UPDATE Family f
INNER JOIN
FamilyTEMP ft ON f.ID = ft.ID
SET
f.address = ft.address,f.phone_number = ft.phone_number;
第一行安全更新,因此您可以在不使用主键条件的情况下更新表。