使用临时表的SQL导入没有结果(也没有错误)

时间:2013-01-26 12:01:45

标签: mysql sql import phpmyadmin

我想只使用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列。对于这种情况,这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

正确的解决方案原来是:

insert into contact (id,city)(select * from import)
on duplicate key update city=values(city);

View on SQL Fiddle

这很棒,可以节省大量时间来编写用于导入的后端脚本。