2015-06-20 85 views
-1

我的聲明會在四個學生ID中插入兩個。插入的是已經存在與另一個節號的Id。我不知道爲什麼其他兩個都沒有插入。Oracle插入多行

INSERT INTO enrollment 
    (student_id,section_id,enroll_date,created_by,created_date,modified_by,modified_date) 
SELECT 
    student_id,'48',SYSDATE,'KABEL',SYSDATE,'KABEL',SYSDATE 
FROM enrollment 
WHERE student_id IN ('375','137','266','382'); 
+1

因爲它們不存在於註冊表中...您根據選擇的結果插入,如果您無法選擇2個學生,您將無法使用它們插入該聲明。此外,您應該知道,如果學生在該表中已經有多於一行(例如:5行),那麼您的語句將嘗試將該學生插入5次!聽起來不像你想要的。 – sstan

+0

你選擇和插入語句使用相同的表'登記' – HaveNoDisplayName

+0

這是有道理的我把表從表改變到包含student_id的學生表,它的工作。我認爲表格必須匹配指定的值。感謝您的幫助! – K455306

回答

0

查詢中沒有什麼大的錯誤。你是錯字或錯誤的選擇INSERT表和SELECT查詢從一個表,因爲這沒有任何意義,從一個表中選擇並插入到相同的表。

您的選擇和插入語句使用相同的表enrollment

這些應該是兩個不同的表格。

INSERT INTO enrollment <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<-------Here Problem 
    (student_id,section_id,enroll_date,created_by,created_date, 
     modified_by,modified_date) 
SELECT 
    student_id,'48',SYSDATE,'KABEL',SYSDATE,'KABEL',SYSDATE 
FROM enrollment <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<-------Here Problem 
WHERE student_id IN ('375','137','266','382');