这很容易编写脚本,但我想学习如何在纯SQL中完成它。我有一个users
表。在users
表中,id
是主键。现在假设我有一个名为foos
的新表。每个用户都可以拥有一个foo。我希望能够为表users
中foos
表中的每个用户创建一行(现在数据是否相同)。 foos
只有两列,user_id
,name
。
在foos
中为user_id
为user.id并且名称为任意随机字符串的每个用户循环访问用户并创建伴随行的最佳方法是什么。
答案 0 :(得分:4)
insert into foo (user_id, name)
select id, SomeStringInUserThatDoesntMatter
from users
OR
insert into foo (user_id, name)
select id, 'This fixed string'
from users
或(有点乐趣)
insert into foo (user_id, name)
select id, '4'
from users
,因为
答案 1 :(得分:2)
我会说它是这样的:
insert into if not exists foo (user_id, name)
select user_id, "any random stuff" from users;
你需要注意两次运行它不会遇到错误,所以我们需要“if not exists”条款。