2015-06-20 7 views
-1

Мое заявление вставляет два из четырех идентификаторов студента. Вставками являются Id, которые уже существуют с другим номером секции. Я не могу понять, почему другие два не вставлены.Oracle INSERT несколько строк

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

ваш оператор select и insert, используя ту же таблицу 'enrollment' – HaveNoDisplayName

+0

Что имеет смысл, я изменил таблицу из таблицы на таблицу Student, в которой находится student_id, и это сработало. Я думал, что таблица должна соответствовать указанным значениям. Спасибо за помощь! – K455306

ответ

0

В вашем запросе ничего плохого. Вы опечатываете или по ошибке выбираете таблицу INSERT и запрос SELECT из одной таблицы, так как это не имеет никакого смысла, выбирать из одной таблицы и вставлять в ту же таблицу.

Ваш оператор select и Insert, используя ту же таблицу 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'); 
Смежные вопросы