我有一个简单的表用户(名称,城市,国家),需要添加一些值相同的行(城市,国家/地区)。有没有更好的方法在旁边插入数据:
insert into Users (name, city, country) values
("John", "Paris", "France"),
("Anna", "Paris", "France"),
("Peter", "Paris", "France"),
("Mary", "Paris", "France")
谢谢
答案 0 :(得分:2)
您可以使用如下查询:
insert into Users (name, city, country)
select name, city, country
from (select 'John' as name union all
select 'Anna' union all
select 'Peter' union all
select 'Mary') as t1
cross join (select 'Paris' as city, 'France' as country) as t2
答案 1 :(得分:0)
您应该能够使用变量。所以它看起来像......
set @city="Paris";
set @country="France";
insert into Users(name, city, country) values
("John", @city, @country)
答案 2 :(得分:0)
虽然您可以通过在特定的RDBMS语法中使用变量来进行一些简化,但由于您在定义Users
表时做出的设计决策,您仍然会将相同的值插入到表的多行中。
问题是您的表格不是规范化,这意味着多次出现相同的信息。解决这个问题的正确方法是定义一个国家/地区表,一个引用它的城市表,以及将Users
表更改为引用Cities
。
答案 3 :(得分:0)
Your solution is correct normaly but try to replace " by ' else try it:
insert into Users (name, city, country)
select *
from (
select 'John', 'Paris', 'France' union all
select 'Anna', 'Paris', 'France' union all
select 'Peter', 'Paris', 'France' union all
select 'Mary', 'Paris', 'France'
) tmp