带有select和硬编码值的SQL插入

时间:2010-11-10 04:57:55

标签: sql mysql insert

为了便于说明,假设我有一个数据库电影(标题,导演,成本,利润)。

现在我想基于另一个表中找到的导演然后硬编码值在Movies表中插入一个新行。

INSERT INTO Movies 
SELECT name 
  FROM Directors 
 WHERE name = 'Lucas';

我是如何理解选择插入工作的,但如果我想使用选择以及传入硬编码值,该怎么办?理论上这样的东西是这样的:

INSERT INTO Movies 
VALUES(Star Wars,(SELECT name 
                    FROM Directors 
                   WHERE name='Lucas'), 50000, 1000000);

这可能吗?

4 个答案:

答案 0 :(得分:24)

INSERT INTO Movies (Title, Director, Cost, Profits)
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors WHERE name = 'Lucas'

答案 1 :(得分:8)

因为您可以在select语句中指定硬编码值,所以使用它可能更清晰:

insert into movies (title, director, cost, profits)
   select 'Star Wars', name, 50000, 1000000 from directors where name = 'Lucas';

答案 2 :(得分:5)

是的,这是可能的。用户INSERT .. SELECT语法。有关详细信息,请参阅reference。硬编码值应该在SELECT查询中,而不是在VALUES中。例如。

INSERT INTO Movies
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors 
WHERE name = 'Lucas';

答案 3 :(得分:1)

你有数据库作为电影(标题,导演,成本,利润)。 如果你想在相应的表中输入值,那么首先选择表,然后在这些表中插入值。