sql >> Database >  >> RDS >> Oracle

Oracle externe sleutel

Ik denk dat je het volgende wilt. Houd er rekening mee dat u waarschijnlijk VARCHAR2 . zou moeten gebruiken in plaats van VARCHAR bij Orakel. Ze werken op dit moment hetzelfde, maar er is een mogelijkheid dat Oracle de functionaliteit voor VARCHAR zal wijzigen om het in overeenstemming te brengen met de ANSI-standaard (waarin lege strings '' worden onderscheiden van NULL s ... maar ik dwaal af):

CREATE TABLE client
( id NUMBER(10) NOT NULL PRIMARY KEY
, name VARCHAR2(30) NOT NULL
, surname VARCHAR2(30) NOT NULL
, phone NUMBER(11) NOT NULL
, email VARCHAR2(70) );

CREATE TABLE boss
( b_surname VARCHAR2(30) NOT NULL PRIMARY KEY
, b_Name VARCHAR2(30) NOT NULL );

En dan:

ALTER TABLE client ADD CONSTRAINT boss_client_fk FOREIGN KEY (surname) REFERENCES boss (b_surname);

Het is een beetje vreemd dat de kolom surname heet in CLIENT en b_surname in BOSS .

Als je b_surname . wilt in BOSS om te verwijzen naar surname in CLIENT -- dan moet je CLIENT.surname . maken een primaire sleutel, of op zijn minst uniek.




  1. mysql-trigger met invoegen en bijwerken na invoegen op tafel

  2. Back-up/herstel van MySQL/MariaDB en PostgreSQL met behulp van de hulpprogramma's 'Automysqlbackup' en 'Autopostgresqlbackup'

  3. INSERT-instructie conflicteert met de FOREIGN KEY-beperking - SQL Server

  4. Voeg elke maand waarde toe aan een kolom in de Mysql-database