鉴于此表结构,
categories{id}
product_models{id, category_id}
products{product_model_id, category_id}
哪些已经填充,但product_models.category_id
,products.category_id
和products.product_model_id
都设置为NULL
,我需要一个将所有人“连接”起来的查询,以下:
product_models.category_id
设置为categories
表products.product_model_id
设置为product_models
table products.category_id
设置为新分配的product_models
记录的category_id值。可以在SINGLE查询中完成吗?
答案 0 :(得分:1)
没有
RAND函数仅在任何查询中执行一次,并且无论使用多少次,都会有效地“锁定”到单个值。
答案 1 :(得分:1)
如果我能够理解您的要求,这就是您的要求
Create Procedure usp_insert
as
begin
declare @rand1 int
declare @rand2 int
set @rand1=rand()*10000
set @rand2=rand()*10000
insert into categories (id) values (@rand1)
insert into product_models{id, category_id} values (@rand2,@rand1)
insert into products{product_model_id, category_id} values (@rand2,@rand1)
End
上面的块将在您的数据库中创建一个过程
执行程序使用以下代码
exec usp_insert
每次执行该过程都会在每个表中插入一行 例如 假设生成的随机数为3423,2345 然后它会 1.在类别表中插入一行,其中3423为id 2.在product_models表中插入一行,其中3423为category_id,2345为id 3.在product_models表中插入一行,其中3423为category_id,2345为product_model_id
您可以根据需要调整插入查询。