MySQL在子查询中插入自动生成的列

时间:2012-12-10 18:51:07

标签: mysql sql select subquery

我正在使用完全不同的架构将数据从一个表导入另一个表。我可以将数据从一列导入到另一列,但是有一个自动生成的列在插入新行时设置。代码只是在表上执行count()+ 100001,我试图在查询中复制但是我遇到了问题。

这是我的疑问:

insert into prospect(pid,pfirst,plast,paddress,pcity,pstate,pzip,eid,pdate,pnum,pprim)
  select custid,cfirst,clast,street,city,state,zip,csrid,lastvisit,
     (select count(pid)+100000 from prospect),celphone from customer limit 140000,1000;

pnum列(生成的列)应该是100000,100001,100002等,但它们都是100000.我认为这是因为我只做一个插入,所以count()为0整个过程。

我如何实现我的目标?

1 个答案:

答案 0 :(得分:1)

试试这个:

select count(pid) into @auto from prospect;
insert into prospect(pid,pfirst,plast,paddress,pcity,pstate,pzip,eid,pdate,pnum,pprim) 
select custid,cfirst,clast,street,city,state,zip,csrid,lastvisit,
     @auto:=@auto+1,celphone from customer limit 140000,1000;

根据您在第一个选择语句中的需要更改 @auto 变量的值。