xiste outra maneira de criar restrições durante a criação da tabela SQ

Suponha que eu tenho as seguintes instruções 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; 

Como existe uma referência recursiva entre departamento e faculdade para o relacionamento da presidência, a restrição de chave estrangeira na presidência do departamento não pode ser definida até que a tabela da faculdade seja definida. A restrição deve ser adicionada depois que o corpo docente for definido usando a instrução alter tabl

Existem outras maneiras de fazer isso, de alguma forma, automatizar a criação de restrições, eliminando assim oalter table declaração

questionAnswers(2)

yourAnswerToTheQuestion