2015-06-20 88 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');