我想只使用SQL导入一些值(1列)。我写的查询看起来应该可以工作,但是当我在phpMyAdmin中输入它时,它只是重置SQL表单(我必须在第一次再写它)并且不执行任何插入。此外,没有错误消息。
目标表(contact
)与具有一些额外字段的临时表具有相同的结构。
create temporary table import(
id int,
postalcode varchar(255)
);
insert into import values
(1,'city1'),
(2,'city2'),
...
;
insert into contact(city) (
select postalcode from import
inner join contact on contact.id=import.id
)
where contact.id=import.id
我添加了inner join
子句,因为查询无法在contact.id
子句中找到where
列。对于这种情况,这是正确的方法吗?
答案 0 :(得分:0)
正确的解决方案原来是:
insert into contact (id,city)(select * from import)
on duplicate key update city=values(city);
这很棒,可以节省大量时间来编写用于导入的后端脚本。