SQL:将多行插入具有静态值的表中

时间:2011-07-25 21:50:59

标签: mysql sql

基本上,我有一些看起来像这样的代码:

while exists (select * from table1 where idForeignkey1 = inidForeignkey2) do

    set var1 = (select idForeignkey2 from table1 where idForeignkey1 = inidForeignkey2 limit 1);

    delete from table1 where idForeignkey2 = var1;

到目前为止一直很好,只是一个简单的小foreach循环,它从表中删除行。问题出现之后。我有一个选择语句喜欢这个:

select idForeignkey1 from table1 where idForeignkey2 = inidForeignkey2

可以返回1到无限值之间的任何值

我需要做的是在table1中插入多行,使用var1作为idForeignkey2,并使用select语句中的值作为idForeignkey1。例如,如果select语句返回1,2,3,4和var1 = 6,则应将其插入表中:

idForeignkey1    idForeignkey2
     1                 6
     2                 6
     3                 6
     4                 6   

1 个答案:

答案 0 :(得分:2)

你可以尝试这样的事情。一个声明应该这样做。

INSERT INTO table1
SELECT idForeignkey1, 6
FROM table1
WHERE idForeignkey2 = inidForeignkey2