2011-12-09 93 views
-1

我試圖將值插入表charterFlight。我想要做的是複製另一個表中的aircraft_id,crew_id和customer_id,並添加/插入其餘值。從另一個表中插入值並將新值添加到表中

運行上述代碼不會產生任何錯誤,但它不插入任何行以及!!!!

+0

做***你的源表中的所有三個實際上都有值嗎? – MatBailie

+1

請發出確切的SQL請求... – Ollie

+1

select是否返回任何行?嘗試在沒有插入的情況下運行它,因爲通用語法對我來說確實很好。 –

回答

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值。


如果你不想爲flight_time, flight_date, destinationNULL值,那麼你可以只選擇的結果複製到EXCEL,並寫入Excel中的公式推,使您在inster聲明爲您服務。


超越我不得不承認,我不是真正確定要發生什麼,這兩種方法。

+0

我意識到這一點,那就是我面臨的問題。我想從另一個表中提取前三個字段的值,併爲其餘三個字段(flight_time,flight_date,destination)手動添加值。我該怎麼做?用VALUES命令? – user1089592

+0

@ user1089592 - 這取決於您是否想要在每條記錄中使用相同的值?如果是這樣,只需追加','航班時間','航班日期','目的地'。但是,如果你想爲每一行提供不同的值,你打算從哪裏得到這些值?你打算加入另一張桌子來獲得它們嗎? (注意,在你做所有表的CROSS JOIN的時候,無論數值或關係如何,獲取每種可能的組合都是你想要的嗎?)或者你可以使用NULL,NULL,NULL,然後返回並手動更新它們或使用UPDATE查詢。 – MatBailie

+0

不,因爲每個航班都有不同的航班時間,航班日期,目的地,並由不同的客戶預訂,並由不同的機組人員(飛行員)駕駛......我正在彌補價值觀! – user1089592

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"; 
?> 

我們可以通過選擇表中的列名後的變量插入。

+0

@MatBailie我們也可以這樣做, – Techy

相關問題