我试图插入更多的数据到我的表,下面的代码工作完美:
insert into GENRES (GENRES)
SELECT GENRE1 FROM titles
union all
SELECT GENRE2 FROM titles
union all
SELECT GENRE3 FROM titles
然而,当我试图修改它,这样我就可以插入电影_标题_ID与它我可以一个错误:
insert into GENRES (GENRES,MOVIE_TITLE_ID)
SELECT GENRE1 FROM titles
union all
SELECT GENRE2 FROM titles
union all
SELECT GENRE3 FROM titles
union all
select TITLE_ID
from titles;
错误消息:
Error starting at line : 175 in command -
insert into GENRES (GENRES,MOVIE_TITLE_ID)
SELECT GENRE1 FROM titles
union all
SELECT GENRE2 FROM titles
union all
SELECT GENRE3 FROM titles
union all
select TITLE_ID
from titles
Error at Command Line : 175 Column : 13
Error report -
SQL Error: ORA-00947: not enough values
00947. 00000 - "not enough values"
*Cause:
*Action:
我猜我做的格式不对,任何帮助都是有用的!
2条答案
按热度按时间ahy6op9u1#
每个
union
艾德子查询都必须返回相同数量的列和等效的数据库,而这些数据库又必须与insert
的列列表相匹配。您的查询声明了两个用于插入的列,但是子查询只返回一个列(并且,title_id
的数据类型可能与genre1
不同)。相反,每个子查询应该生成两列:类型和相关的标题ID:
toiithl62#
实现此结果的最简单方法是通过下面提到的一个非常简单的查询。