Rich Shepard <rshepard@appl-ecosys.com> writes:
> My schema includes three tables and psql throws an error I'm not seeing
> when I try to read the schema into the database. I'd appreciate fresh eyes
> looking at the table and learning what error I'm not seeing.
Hm, seems straightforward enough to me: the only uniqueness constraint
you've got in Weather_Params is
> PRIMARY KEY (site_id, param)
but in Weather_Data you write
> param TEXT
> REFERENCES Weather_Params(param),
so you get this
> ERROR: there is no unique constraint matching given keys for referenced
> table "weather_params".
because Weather_Params.param isn't constrained to be unique.
Weather_Params' pkey constrains the combination of site_id and param to be
unique, but that doesn't make param alone unique, so param in Weather_Data
isn't enough to reference a well-defined row of Weather_Params.
Seeing that Weather_Data also has a site_id column, I'm going to guess
that what you wanted to put in Weather_Data is a two-column FK:
FOREIGN KEY (site_id, param) REFERENCES Weather_Params (site_id, param)
That would match Weather_Params' pkey, so it's enough to identify a
unique row of Weather_Params.
regards, tom lane