2016-07-19 29 views
0

長時間のlurker初めてのポスター!複合キーを使用してSQLの結合テーブルにモックデータを挿入

私は自分のWebアプリケーションと一緒に行くためにSQLデータベースに取り組んでいます。多対多の関係を結ぶ2つの結合表があります。私はMockarooを使用して必要に応じてテーブルのモックデータを生成しています。次に、私の結合テーブルに来ました。私は複合キーなどを使用した場合、INSERT文のモック私の主キーのデータ、あるいはフォーマットを生成する方法を把握しようとしています

CREATE TABLE Test (
dirtId INT NOT NULL, 
lightId INT NOT NULL, 
PRIMARY KEY (dirtId, lightId), 
FOREIGN KEY (dirtId) REFERENCES Dirts (id), 
FOREIGN KEY (lightId) REFERENCES Lights (id) 
); 

を次のように

私が今持っているスキーマが見えますこの。

私の外部キーについては、他のテーブルの値にランダムなintを入れるだけでは問題はありませんが、それを実装するための構文や方法がわかりません。前もって感謝します!

答えて

0

CTEを使用した簡単な例です。

;with tbl as (
select 1 id 
union all 
select id+1 
from tbl where id<10 
) 
--insert myTable 
select t1.id dirtId, t2.id lightId 
from tbl t1 cross join tbl t2 

DBMSがCTEをサポートしていない場合は、別の解決方法を選択してください。

create table #tbl (id int) 
declare @id int = 1 
while @id < 11 
begin 
insert #tbl values(@id) 
set @id += 1 
end 
--insert myTable 
select t1.id dirtId, t2.id lightId 
from #tbl t1 cross join #tbl t2 
--drop table #tbl 

それとも、DirtsLightsで何かを持っているならば、同じようにそれらを使用しています。

関連する問題