creating several rows with one insert?
From: <mh_at_pixar.com>
Date: Sun, 19 Oct 2008 08:03:48 GMT
Message-ID: <ERBKk.3475$D32.153@flpi146.ffdc.sbc.com>
foo
bar
baz
Date: Sun, 19 Oct 2008 08:03:48 GMT
Message-ID: <ERBKk.3475$D32.153@flpi146.ffdc.sbc.com>
suppose I have a table t1 with one column and several rows of data:
name
foo
bar
baz
and that I want to insert some rows into another table, driven by the data in t1.
So that If I insert the value 99, I would get the equivalent of:
insert into t2(a,b) values(99,'foo'); insert into t2(a,b) values(99,'bar'); insert into t2(a,b) values(99,'baz');
Now I'm handling this in my client code with the obvious code:
x=99
curs.execute('select name from t1')
for n in curs:
curs.execute('insert into t2(a,b) values(:1,:2)',[x,n])
- Is there some clever way to cause this to happen in SQL, i.e. a built-in iterator over the rows in t1?
- This is how I was planning to implement the code in a stored procedure. Is there a better way to do this?
for rec in (select name from t1) loop insert into t1(a,b) values (x,rec.name); end loop;
Many TIA!
Mark
-- Mark Harrison Pixar Animation StudiosReceived on Sun Oct 19 2008 - 03:03:48 CDT