2016-07-19 5 views
0

lange Zeit lurker zum ersten Mal Poster!Einfügen von Scheindaten in eine assoziative Tabelle in SQL mit einem zusammengesetzten Schlüssel

Ich arbeite an einer SQL-Datenbank, um mit meiner Web-Anwendung zu gehen. Ich habe zwei assoziative Tabellen, um viele-zu-viele-Beziehungen zu verbinden. Ich verwende Mockaroo, um nach Bedarf Mock-Daten für meine Tabellen zu generieren, dann kam ich zu meiner assoziativen Tabelle.

Das Schema I sieht nun wie folgt aufweist:

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) 
); 

ich herauszufinden versuche, wie für meine primären Schlüssel Mock-Daten zu erzeugen, oder auch das Format für die INSERT-Anweisung, wenn wie einen Verbundschlüssel Dies.

Für meine Fremdschlüssel sehe ich kein Problem mit zufälligen Ints innerhalb der Werte in der anderen Tabelle zu bevölkern, aber ich bin mir nicht sicher über die Syntax oder die Art, Mockaroo zu verwenden, um dies zu erreichen. Danke im Voraus!

Antwort

0

Einfaches Beispiel, das CTE verwendet.

;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 

Wenn Ihr DBMS CTE nicht unterstützt dann eine andere Lösung.

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 

Oder wenn Sie etwas in Dirts und Lights sie dann auf die gleiche Art und Weise verwendet werden.

Verwandte Themen