gpt4 book ai didi

sql - 我如何允许sql中的重复值?

转载 作者:行者123 更新时间:2023-12-05 08:39:15 25 4
gpt4 key购买 nike

所以我有这个代码和简单的两个表1-G群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: unique constraint (SQL_XAKKMDKZQBPBDDQFTDEXENGDH.SYS_C0025290829) violated ORA-06512: at "SYS.DBMS_SQL", line 1721

我认为这是因为我之前插入的这一行:

insert into GGroup values (
'A/3/54',
1608,
'ISM223',
'Data Warehouse & Data Mining',
'Dr. Yasser Al-Mshhor'
);

我该如何解决这个问题?我对sql不是很了解

最佳答案

正如其他人在上面的回答中所指出的那样 - 您遇到此问题是因为您在 GGroup 中使用 ClassRoom 列作为 Primary Key 表脚本,即 主键 (ClassRoom)

什么是主键?

  • 一张表只能有一个主键。
  • PRIMARY KEY 约束唯一标识表中的每条记录。
  • 主键必须包含 UNIQUE 值,不能包含 NULL 值。

这意味着您不能在 ClassRoom 列中插入重复值,即 A/3/54。解决此错误的最简单方法之一是添加另一列,例如GroupId 通过更改或删除表。

注意:如果 GGroup 表中有很多行,则使用 ALTER TABLE(已在之前的答案中显示)语句而不是使用 DROP TABLE 语句。

第一步:

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 错误。

关于sql - 我如何允许sql中的重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60434122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com