使用复合键将模拟数据插入SQL中的关联表

时间:2016-07-19 22:46:52

标签: sql database xampp primary-key composite-key

很长一段时间潜伏在海报第一次!

我正在使用SQL数据库来使用我的Web应用程序。我有两个关联表来连接多对多关系。我正在使用Mockaroo根据需要为我的表生成模拟数据然后我来到我的关联表。

我现在的架构如下:

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

我试图弄清楚如何为我的主键生成模拟数据,甚至在使用像这样的复合键时生成INSERT语句的格式。

对于我的外键,我没有看到只是在其他表中的值中随机整数填充它的问题,但我不确定语法或使用mockaroo来实现此目的的方法。提前谢谢!

1 个答案:

答案 0 :(得分: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中有某些内容,请以相同的方式使用它们。