我是SQL脚本的新手,无法弄清楚如何为每个循环制作一个特定的。我需要做这样的事情:
我有Sites
和SiteCrawls
个表格。
基本上,对于每个网站,我需要创建一个新的SiteCrawl
,而SiteCrawl
的{{1}}列将等于该网站的ID。
我该怎么做?
答案 0 :(得分:12)
insert SiteCrawl
(
Site_ID
)
select
s.Site_ID
from Site as s
where s.Site_ID not in (select Site_ID from SiteCrawl)
答案 1 :(得分:4)
insert into site_crawl (site_id) values (select site_id from site);
基本上:在普通SQL中没有特定的/ each,你总是将表和行的结果作为一个语句来处理。 所以你也可以说:除了for / each之外,SQL语句不可能是其他东西。 有了这些知识,您可以看到上面的查询将在site_crawl中为站点表中的每个site_id插入一行。你很可能想要使用比这更多的值,但是根据你的问题提供的信息,我可以为你做的一切:)
另外:您想了解更多关于sql是什么以及如何使用它。
玩得开心,SQL很有趣!
答案 2 :(得分:3)
在SQL中,您通常不希望遍历每条记录。这是非常低效的。
您可以执行类似
的操作insert into SiteCrawl (Site_Id)
select Id from Sites
答案 3 :(得分:1)
insert into SiteCrawls (SiteID)
select SiteID
from Sites
答案 4 :(得分:1)
您可以通过触发器
来完成CREATE TRIGGER tg AFTER INSERT ON `Sites`
FOR EACH ROW
BEGIN
insert into SiteCrawls(Site_ID) values (NEW.id);
END
;