Bir masa, TABLO ve subsubtable satırları çoğaltmak için kolay yolu

0 Cevap php

Ben MySQL kullanan küçük bir web uygulaması için bir "Save As Copy" fonksiyonu uygulamak duyuyorum.

Diyelim ki üç tablo var, gibi pek diyelim ...

TABLE Doc
 ID,
 title,
 text

TABLE DocAttributes
 ID,
 DocID -> Doc(ID)
 title,
 text

TABLE DocSubAttributes
 DocAttrID -> DocAttributes(ID)
 title,
 text

Burada ne var tek bir Belge birden DocAttributes olabilir bir durumdur ve her DocAttribute sırayla birden SubAttributes olabilir.

Ben DocSubAttributes tablo hakkında endişelenmenize gerek yoktu Şimdi, eğer, bu oldukça basit olurdu, ve ben böyle bir şey yapmak istiyorum ...

$insertID = INSERT INTO Doc (title, text) SELECT title, text FROM Doc WHERE ID = $docID;

INSERT INTO DocAttributes DocID, title, text SELECT $insertID AS DocID, title, text FROM Doc WHERE ID = $docID;

Üçüncü bir-çok tablo var çünkü Ancak, bu yöntem işe yaramaz. Ben DocSubAttributes karşılık gelen satırları oluşturmak için her DocAttributes satır için birincil anahtarları bilmek gerekir.

Bunu yapmak için farkındayım tek yolu her bir yineleme ile tüm DocSubAttributes seçerek, bir seferde DocAttributes bir satır boyunca yineleme yapmak ve daha sonra yinelenen bir anda bir tekrar, her ekleme yapıyor.

Ben merak ediyorum: yineleme dayanmadan tamamen yeni ve ayrı bir veri varlık yaratmak için kendi tablolarda bu satırları çoğaltmak için basit bir yolu var mı?

Yardımlarınız için teşekkürler

0 Cevap