Обсуждение: two questions
I am having two questions about psql: 1. How to define a relation with an attribute which takes set values? Not really sure what you mean.... eg. I would like to define a table like create table emp (name text, tele Set(string)); -- it does not work One tuple may look like 'Jerry', {83023381,83023800} I can not use array since an array is not a set. 2. How to populate instances to a table referring another table? An example: Create table CITIES (name text, population float); Insert into cities values ('Adelaide', 100.0); Create table people(name text, live_in CITIES); How to insert a tuple into people saying that 'Jerry' lives in Adelaide? I can not use INSERT INTO people('Jerry', 'Adelaide'); since live_in is not a string, it is a table named CITIES I am trying to use object reference of OR. Thus a reference path can be formed. Jerry Liu, Australia
> I am having two questions about psql: > > 1. How to define a relation with an attribute which takes set values? > Not really sure what you mean.... > > eg. I would like to define a table like > create table emp (name text, tele Set(string)); -- it does > not work > One tuple may look like 'Jerry', {83023381,83023800} > I can not use array since an array is not a set. > > 2. How to populate instances to a table referring another table? An > example: > Create table CITIES (name text, population float); > Insert into cities values ('Adelaide', 100.0); > Create table people(name text, live_in CITIES); > How to insert a tuple into people saying that 'Jerry' lives in > Adelaide? > I can not use > INSERT INTO people('Jerry', 'Adelaide'); > since live_in is not a string, it is a table named CITIES > I am trying to use object reference of OR. Thus a reference path > can be formed. > > Jerry Liu, Australia The usual approach is to use two tables. create table cities (name text, population float); create table people (name text, city_name text); insert into cities values ('Adelaide', 100.0); insert into people values ('Jerry', 'Adelaide'); update cities set population = population + 1 where name = 'Adelaide';
I miss <subject>. I know the answer is that I can write them myself, but I don't know where to start or end. See this construct: CREATE TABLE gl-amount ( glam_nr int, period date, entry_amount numeric(9,0), PRIMARY KEY (glam_seq,period) ); CREATE VIEW glam_curmth_v AS SELECT entry_amount AS amount1 FROM gl-amount WHERE date_part(year', period) = date_part('year', now::datetime) AND date_part('month', period) = 1 UNION SELECT entry_amount AS amount2 FROM gl-amount WHERE type = 'S' AND period = 2; SELECT entry_amount AS amount1 FROM gl-amount WHERE date_part('year', period) = date_part('year', 'now'::datetime) AND date_part('month', period) = 1 UNION SELECT entry_amount AS amount2 FROM gl-amount WHERE date_part('year', period) = date_part('year', 'now'::datetime) AND date_part('month', period) = 2 ... Can it be done without the use of VIEW's on UNION's?