2012-04-06 11 views
0

Ich habe meine Tabellen definiert so:Postgres Objekt-Relation Datenbank scheint nicht richtig zu funktionieren

create table device (
id serial primary key, 
manufacturerid integer references manufacturer(id) on delete restrict, 
model text, 
price real, 
usagepros text, 
usagecons text 
); 

create table robot (
numaxes integer, 
capacity real, 
reach real, 
accuracy real, 
installmethodid integer references installmethod(id) on delete restrict, 
mass real 
) inherits (device); 

create table robotComplex(
id serial primary key, 
name text 
); 

create table robotComplexDevice(
id serial primary key, 
deviceId integer references device(id) on delete restrict, 
robotcomplexid integer references robotcomplex(id) on delete cascade 
); 

etc... 

ich folgende beim Ausführen von SQL-Befehlen:

id | manufacturerid | model | price | usagepros | usagecons | numaxes | capacity | reach | accuracy | installmethodid | mass 
-----+----------------+-------+-------+-----------+-----------+---------+----------+-------+----------+-----------------+------- 
159 |   117 | Robot | 100.3 | OK  | NoOK  |  6 |  15.3 | 15.4 | 76.1234 |    45 | 100.1 

> select * from device; 
id | manufacturerid | model | price | usagepros | usagecons 
-----+----------------+-------+-------+-----------+----------- 
159 |   117 | Robot | 100.3 | OK  | NoOK 

> select * from robotcomplex; 
id |  name  
----+-------------- 
27 | Complex 


> insert into robotcomplexdevice (deviceid, robotcomplexid) values (159, 27); 
ERROR: insert or update on table "robotcomplexdevice" violates foreign key constraint  "robotcomplexdevice_deviceid_fkey" 
DETAIL: Key (deviceid)=(159) is not present in table "device". 

Aus irgendeinem Grund, Obwohl ich die Tabelle "robot" definiert habe, um die Tabelle "deivice" zu erben, kann ich nicht darauf verweisen. Vielleicht bekomme ich das objektrelationale Datenbankmodell nicht korrekt. Aber wenn Sie die Tabellen nicht referenzieren können, worauf zielt dann das objektrelationale Modell ab?

Antwort

Verwandte Themen