我正在尝试将值插入名为 charterFlight 的表中。我要做的是从另一个表中复制aircraft_id,crew_id和customer_id 和添加/插入剩余的值。
INSERT INTO charterflight
(aircraft_id, crew_id, customer_id, flight_time, flight_date,destination)
SELECT
aircraft_id, crew_id, customer_id --(and the remaining values here)
FROM aircraft, crew, customer
运行上面的代码不会产生任何错误,但它也不会插入任何行!
答案 0 :(得分:1)
基于此评论...
@Ollie Error starting at line 1 in command:
INSERT INTO charterflight (aircraft_id, crew_id, customer_id, flight_time, flight_date,destination)
SELECT aircraft_id, crew_id, customer_id
FROM aircraft, crew, customer
Error at Command Line:1 Column:12 Error report: SQL Error: ORA-00947: not enough values 00947. 00000 - "not enough values" *Cause: *Action:
您正在尝试将三个值插入到包含6个字段的表中。
INSERT INTO table (...)
中的字段数必须与表中的字段匹配。然后SELECT ... FROM
中的数字字段也必须与这些字段匹配。
任何不匹配都会导致您引用的错误。
编辑:回复您的评论
我可以建议您使用以下内容插入飞机,船员和客户的每个组合......
INSERT INTO charterflight (aircraft_id, crew_id, customer_id, flight_time, flight_date, destination)
SELECT aircraft_id, crew_id, customer_id, NULL, NULL, NULL
FROM aircraft, crew, customer
然后您可以另外手动替换NULL
值。
如果您不想NULL
的{{1}}值,那么您只需将SELECT的结果复制到EXCEL中,然后在Excel中编写一个公式,为您制作inster语句。< / p>
除了这两种方法,我还要承认,我实际上并不确定你想要发生什么。
答案 1 :(得分:0)
如果是php,我们可以这样做,
<?php
$var1=''; //some value
$var2=''; //some value
$var3=''; //some value
$qry = "INSERT INTO charterflight
(aircraft_id, crew_id, customer_id, flight_time, flight_date,destination)
SELECT
aircraft_id, crew_id, customer_id ,$var1,$var2,$var3
FROM aircraft, crew, customer";
?>
我们可以在所选表的列名之后传递变量以便插入。