¿Hay alguna otra forma de crear restricciones durante la creación de la tabla SQL?
Supongo que tengo estas siguientes instrucciones SQL, usando Oracle:
drop table department cascade constraints;
drop table facultyStaff cascade constraints;
drop table student cascade constraints;
drop table campusClub cascade constraints;
drop table studentClub cascade constraints;
create table department
( code varchar2(3) primary key,
name varchar2(40) not null,
chair varchar2(11));
create table facultyStaff
( staffID varchar2(5) primary key,
dob date,
firstName varchar2(20),
lastName varchar2(20),
rank varchar2(10),
deptCode varchar2(3),
constraint rankValue check (rank in ('Assistant', 'Associate', 'Full', 'Emeritus')),
constraint facultyDeptFk foreign key (deptCode) references department (code));
create table student
( studentId varchar2(5) primary key,
dob date ,
firstName varchar2(20),
lastName varchar2(20),
status varchar(10),
major varchar(3),
constraint statusValue check (status in ('Freshman', 'Sophomore', 'Junior', 'Senior', 'Graduate')),
constraint studentMajorFk foreign key (major) references department (code));
alter table department
add constraint departmentChairFk foreign key(chair) references facultyStaff(staffId) on delete set null;
Dado que existe una referencia recursiva entre el departamento y el profesorado para la relación del presidente, la restricción de clave externa para el presidente en el departamento no se puede definir hasta que se defina la tabla del profesorado. La restricción debe agregarse después de definir la facultad utilizando la instrucción alter table.
¿Hay alguna otra forma de hacer esto, de alguna manera automatizar la creación de restricciones eliminando así laalter table
declaración?