1

我正在使用完全不同的模式将数据从一个表导入另一个表。我可以将数据从一列导入到另一列,但是插入新行时会设置一个自动生成的列。该代码只是在表上执行 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 .

我将如何完成我想要的?

4

1 回答 1

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;

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

于 2012-12-10T18:57:00.600 回答