Aquí está mi sugerencia:evite CHAR
tipo de datos a menos que tenga sentido (como en género , como lo hiciste tú), así como VARCHAR
>>> usa VARCHAR2
en cambio (personalmente, nunca uso CHAR
, y nunca he usado VARCHAR
).
DATE
El tipo de datos contiene componentes de fecha y hora, por lo que está seguro si lo usa.
Las columnas que hacen la restricción de clave principal no tienen que tener el NOT NULL
restricción especificada, porque las claves primarias no permiten nulos de todos modos.
Entonces, aquí está, un ejemplo de trabajo:
SQL> create table appointment
2 (appointid integer constraint pk_app primary key,
3 appoint_date date,
4 appoint_type varchar2(5)
5 );
Table created.
SQL>
SQL> insert into appointment values
2 (1, to_date('15.04.2017 10:00', 'dd.mm.yyyy hh24:mi'), 'long');
1 row created.
SQL>
SQL> create table doctor
2 (appointid integer constraint fk_doc_app references appointment (appointid),
3 regnum varchar2(6),
4 doc_name varchar2(40),
5 doc_gender char(1),
6 qual varchar2(80),
7 --
8 constraint pk_doc primary key (appointid, regnum)
9 );
Table created.
SQL>