Voici ma suggestion :évitez CHAR
type de données à moins que cela ait un sens (comme dans gender , comme vous l'avez fait), ainsi que VARCHAR
>>> utilisez VARCHAR2
à la place (personnellement, je n'utilise jamais CHAR
, et n'ont jamais utilisé VARCHAR
).
DATE
le type de données contient à la fois un composant de date et d'heure, vous êtes donc en sécurité si vous l'utilisez.
Les colonnes qui constituent la contrainte de clé primaire n'ont pas besoin d'avoir le NOT NULL
contrainte spécifiée, car les clés primaires n'autorisent de toute façon pas les valeurs nulles.
Donc, le voici, un exemple de travail :
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>