Re: [SQL] copy one to many?
От | Bryan White |
---|---|
Тема | Re: [SQL] copy one to many? |
Дата | |
Msg-id | 001601bdd1f4$c3f9df00$a3f0f6ce@bryan.arcamax.com обсуждение исходный текст |
Ответы |
Re: [SQL] copy one to many?
|
Список | pgsql-sql |
>This is a follow up to my last question on how to use INSERT INTO to copy >rows. I have one more hurdle... how can I copy one or more source rows to >many dest rows, but with different target library numbers? > >I have this: >INSERT INTO tblspotinfo > (librarynumber, > spotnumber, > audiotypeid ... > FROM > tblspotinfo > WHERE > librarynumber = '9988'; > >Is there a way to say, get all records with the library number = '9988' >and copy them to a list of NEW library numbers? > >So source would be librarynumber 9988, >and dest would be 4457, 4458, 4459, 4460 instead of 6666. > >Is SQL capabile of this or do I need a function on the server side to do >this easily? I think you can use a sequence to do this. Look at the man page for create_sequence. I think next_seq is the built in function to retrieve the next id. You could call that as a column in the select portion of your statement: ie: CREATE SEQUENCE myseq start 4457; INSERT into tblspotinfo (...) SELECT next_seq('myseq'), ... FROM ... WHERE ...; DROP SEQUENCE myseq; Of course you would only do the DROP if you were not going to use the sequence again.
В списке pgsql-sql по дате отправления: