Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在多对多关系表中插入记录?_Sql_Oracle_Many To Many - Fatal编程技术网

Sql 如何在多对多关系表中插入记录?

Sql 如何在多对多关系表中插入记录?,sql,oracle,many-to-many,Sql,Oracle,Many To Many,例如,我有两张桌子 A B 还有第三张桌子 AB 以及他们之间的关系 alter table teacher_student add constraint s_t_pk Primary key(T_Id, S_Id); 是否正确创建了此关系?如果我想添加一个新的学生或教师,插入查询是什么。通常的操作需要学生和教师表的主键,然后教师和学生表的T\u Id和S\u Id的外键 当您这样做时,插入到学生和教师,将只检查其密钥的唯一性,即,您不能有两个id为1的学生密钥 插入到Teacher_Stud

例如,我有两张桌子

A

B

还有第三张桌子

AB

以及他们之间的关系

alter table teacher_student
add constraint s_t_pk Primary key(T_Id, S_Id);

是否正确创建了此关系?如果我想添加一个新的学生或教师,插入查询是什么。

通常的操作需要学生和教师表的主键,然后教师和学生表的T\u Id和S\u Id的外键

当您这样做时,插入到学生和教师,将只检查其密钥的唯一性,即,您不能有两个id为1的学生密钥

插入到Teacher_Student将检查关系的唯一性,以及插入的ID是否存在于各自的表中


PS缩写数据库对象名称是一个非常令人讨厌的习惯。

通常的操作需要学生表和教师表的主键,然后教师和学生表的T_Id和S_Id的外键

当您这样做时,插入到学生和教师,将只检查其密钥的唯一性,即,您不能有两个id为1的学生密钥

插入到Teacher_Student将检查关系的唯一性,以及插入的ID是否存在于各自的表中


PS缩写数据库对象名称是一个非常令人讨厌的习惯。

建议:还应添加引用完整性约束:

alter table teacher_student
   add constraint s_t_fk_t foreign key (T_Id)
   references teachers (id)
   on delete cascade
   on update cascade;

alter table teacher_student
   add constraint s_t_fk_s foreign key (S_Id)
   references students (id)
   on delete cascade
   on update cascade;

建议:还添加引用完整性约束:

alter table teacher_student
   add constraint s_t_fk_t foreign key (T_Id)
   references teachers (id)
   on delete cascade
   on update cascade;

alter table teacher_student
   add constraint s_t_fk_s foreign key (S_Id)
   references students (id)
   on delete cascade
   on update cascade;

为了清晰起见,缩写数据库对象名称是一种非常常见的技术。你肯定熟悉那些著名的?该死的学者。如果没有十年的实际经验,不应该允许教授Hello World。为了清晰起见,缩写数据库对象名称是一种非常常见的技术。你肯定熟悉那些著名的?该死的学者。不应该被允许在没有十年真实世界经验的情况下教授Hello World。
alter table teacher_student
add constraint s_t_pk Primary key(T_Id, S_Id);
alter table teacher_student
   add constraint s_t_fk_t foreign key (T_Id)
   references teachers (id)
   on delete cascade
   on update cascade;

alter table teacher_student
   add constraint s_t_fk_s foreign key (S_Id)
   references students (id)
   on delete cascade
   on update cascade;