Oracle:如何添加这些约束?
我制作了三个表,“investigador”、“inv_proy”和“proyecto”,
CREATE TABLE INVESTIGADOR (nip number, nombre varchar(20),
apellido varchar(20), fecha_nac date, sexo char, dir varchar(20), correo varchar(50));
CREATE TABLE PROYECTO (id number, descripcion varchar(50), duración number, fecha_inicio date, presupuesto number);
CREATE TABLE INV_PROY (nip number, id number, fecha date, cargo varchar(20));
ALTER TABLE INV_PROY ADD CONSTRAINTS INV_PROY_PK PRIMARY KEY (NIP);
ALTER TABLE INVESTIGADOR ADD CONSTRAINTS INVESTIGADOR_PK PRIMARY KEY (NIP);
ALTER TABLE PROYECTO ADD CONSTRAINTS PROYECTO_PK PRIMARY KEY(ID);
如何才能使每次向 INV_PROY 添加寄存器时都有关联的 INVESTIGADOR 和 PROYECTO 寄存器?
我怎样才能做到每次从 INVESTIGADOR 中删除一个寄存器时,它也会从其关联表中删除?
I made three tables, "investigador", "inv_proy" and "proyecto"
CREATE TABLE INVESTIGADOR (nip number, nombre varchar(20),
apellido varchar(20), fecha_nac date, sexo char, dir varchar(20), correo varchar(50));
CREATE TABLE PROYECTO (id number, descripcion varchar(50), duración number, fecha_inicio date, presupuesto number);
CREATE TABLE INV_PROY (nip number, id number, fecha date, cargo varchar(20));
ALTER TABLE INV_PROY ADD CONSTRAINTS INV_PROY_PK PRIMARY KEY (NIP);
ALTER TABLE INVESTIGADOR ADD CONSTRAINTS INVESTIGADOR_PK PRIMARY KEY (NIP);
ALTER TABLE PROYECTO ADD CONSTRAINTS PROYECTO_PK PRIMARY KEY(ID);
How can I make it so each time I add a register to INV_PROY there is both an associated INVESTIGADOR and a PROYECTO register?
And how can I make it so that each time I erase a register from INVESTIGADOR it's also erased from its associate tables?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果不知道这三个表如何相关,就很难回答您的问题,但常见的答案是使用外键约束和级联删除。
It's difficult to answer your question without knowing how the three tables are related but the common answer is to use foreign key constraints with cascading deletes.