所以我有这个代码和两个简单的表1-GGroup 2-时间表
这是它们的代码:
CREATE TABLE GGroup(
ClassRoom varchar(7),
GroupNum number(5),
C_Code varchar(6),
C_Name varchar(35), Field
Teacher varchar(30),
primary key (ClassRoom)
);
CREATE TABLE TimeTable(
ClassRoom varchar(7),
StudentID number(9),
FirstName varchar(30),
LastName varchar(30),
primary key(ClassRoom, StudentID),
foreign key(ClassRoom) references GGroup(ClassRoom)
);而且我已经用np在表GGroup中插入了行!
但是现在我正在尝试插入这一行
insert into GGroup values (
'A/3/54',
1608,
'ISM223',
'Data Warehouse & Data Mining',
'Dr. Yasser Al-Mshhor'
);我得到了这个错误:
ORA-00001:唯一约束
(SQL_XAKKMDKZQBPBDDQFTDEXENGDH.SYS_C0025290829)违反了ORA-06512: at "SYS.DBMS“_SQL",第1721行
我想这是因为我之前插入的这行:
insert into GGroup values (
'A/3/54',
1608,
'ISM223',
'Data Warehouse & Data Mining',
'Dr. Yasser Al-Mshhor'
);我怎么才能解决这个问题呢?我对sql了解不多
发布于 2020-02-29 06:27:43
正如其他人已经在上面的答案中指出的那样-你之所以会有这个问题,是因为你正在使用ClassRoom列作为主键在您的GGroup表脚本,即primary key (ClassRoom)。
主键是什么?
这意味着您不能插入重复的值,即A/3/54在ClassRoom列。解决此错误的最简单方法之一是添加另一个列,例如GroupId通过更改或删除该表。
注意:如果GGroup表中有很多行,那么使用ALTER table (已经在前面的答案中说明)语句,而不是使用DROP TABLE语句。
步骤1:
DROP TABLE GGroup;步骤2:
CREATE TABLE GGroup(
GroupId NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
ClassRoom varchar(7),
GroupNum number(5),
C_Code varchar(6),
C_Name varchar(35), Field
Teacher varchar(30)
);完成这两个步骤后,您就可以插入重复的值,而不会获得任何值ORA-00001: unique constraint错误。
https://stackoverflow.com/questions/60434122
复制相似问题