ďťż
 
=?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?= ďťż
 
=?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?=



annakin - 21-06-2007 00:03
=?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?=
  Witam

Proszę o wskazówkę jak osiągnąć to co niżej.
Mam tabele A:
(
id serial, primary key,
przedmiot_id integer references przedmioty(id),
rodzaj_zajec_id integer references rodzaje_zajec(id),
rok_akademicki_id integer references rok_akademicki(id)
)

Czyli jest to tabela przedmiotów w konkretnym roku akademickim. Przy czym w tej tabeli każdy
przedmiot może wystąpić tyle razy ile jest rodzajów zajęć (ćwiczenia, fakultet, wykład itp.)

Teraz potrzebuje mieć tabele B gdzie będę posiadał dokładnie te same dane co w tabeli A, z tym że
przedmioty maja występować pojedynczo plus zdefiniowane dla nich inne wartości jeszcze. Wartości
tych nie mogę zdefiniować w tabeli A bo są to wartości ogólne dla przedmiotu a nie dla przedmiotu i
rodzaju zajęć.

Szczerze mówiąc nie wiem jak sie za to zabrać. Będę wdzięczny za jakieś wskazówki.

--
annakin





Adam - 21-06-2007 00:03

  annakin napisał(a):
> Witam
>
> Proszę o wskazówkę jak osiągnąć to co niżej.
> Mam tabele A:
> (
> id serial, primary key,
> przedmiot_id integer references przedmioty(id),
> rodzaj_zajec_id integer references rodzaje_zajec(id),
> rok_akademicki_id integer references rok_akademicki(id)
> )
>
> Czyli jest to tabela przedmiotów w konkretnym roku akademickim. Przy
> czym w tej tabeli każdy przedmiot może wystąpić tyle razy ile jest
> rodzajów zajęć (ćwiczenia, fakultet, wykład itp.)
>
>
> Teraz potrzebuje mieć tabele B gdzie będę posiadał dokładnie te same
> dane co w tabeli A, z tym że przedmioty maja występować pojedynczo plus
> zdefiniowane dla nich inne wartości jeszcze. Wartości tych nie mogę
> zdefiniować w tabeli A bo są to wartości ogólne dla przedmiotu a nie dla
> przedmiotu i rodzaju zajęć.
>
> Szczerze mówiąc nie wiem jak sie za to zabrać. Będę wdzięczny za jakieś
> wskazówki.
>
create table XXXXX
as select ...............

Pozdr
Adam




annakin - 21-06-2007 00:03

  Adam pisze:
> annakin napisał(a):
>> Witam
>>
>> Proszę o wskazówkę jak osiągnąć to co niżej.
>> Mam tabele A:
>> (
>> id serial, primary key,
>> przedmiot_id integer references przedmioty(id),
>> rodzaj_zajec_id integer references rodzaje_zajec(id),
>> rok_akademicki_id integer references rok_akademicki(id)
>> )
>>
>> Czyli jest to tabela przedmiotów w konkretnym roku akademickim. Przy
>> czym w tej tabeli każdy przedmiot może wystąpić tyle razy ile jest
>> rodzajów zajęć (ćwiczenia, fakultet, wykład itp.)
>>
>>
>> Teraz potrzebuje mieć tabele B gdzie będę posiadał dokładnie te same
>> dane co w tabeli A, z tym że przedmioty maja występować pojedynczo
>> plus zdefiniowane dla nich inne wartości jeszcze. Wartości tych nie
>> mogę zdefiniować w tabeli A bo są to wartości ogólne dla przedmiotu a
>> nie dla przedmiotu i rodzaju zajęć.
>>
>> Szczerze mówiąc nie wiem jak sie za to zabrać. Będę wdzięczny za
>> jakieś wskazówki.
>>
> create table XXXXX
> as select ...............

Jasne, w ten sposób mogę sobie utworzyć tabele B. Tylko co gdy tabela A zostanie zmodyfikowana? Nie
mogę dropowac tabeli B i tworzyć sobie jej na nowo bo mogę mieć już w niej powprowadzane dane do
tych dodatkowych kolumn. Potrzebuje tutaj czegoś bardziej 'skomplikowanego' co po każdej operacji na
tabeli A zsynchronizuje ja z tabela B bez utraty danych. Dopuszczam wykasowanie przedmiotu z tabeli
B wtedy gdy nie występuje w żadnej postaci rodzaju zajęć w tabeli A.

--
annakin




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 21-06-2007 00:03

  annakin wrote:
> Witam
>
> Proszę o wskazówkę jak osiągnąć to co niżej.
> Mam tabele A:
> (
> id serial, primary key,
> przedmiot_id integer references przedmioty(id),
> rodzaj_zajec_id integer references rodzaje_zajec(id),
> rok_akademicki_id integer references rok_akademicki(id)
> )
>
> Czyli jest to tabela przedmiotów w konkretnym roku akademickim. Przy
> czym w tej tabeli każdy przedmiot może wystąpić tyle razy ile jest
> rodzajów zajęć (ćwiczenia, fakultet, wykład itp.)
>
>
> Teraz potrzebuje mieć tabele B gdzie będę posiadał dokładnie te same
> dane co w tabeli A, z tym że przedmioty maja występować pojedynczo plus
> zdefiniowane dla nich inne wartości jeszcze. Wartości tych nie mogę
> zdefiniować w tabeli A bo są to wartości ogólne dla przedmiotu a nie dla
> przedmiotu i rodzaju zajęć.

Jak te same? Tabela A to jedynie tabela powiązań. Poza tym żadnych danych w niej
nie ma!

> Szczerze mówiąc nie wiem jak sie za to zabrać. Będę wdzięczny za jakieś
> wskazówki.

Szczerze mówiąc nie wiem, gdzie widzisz problem. Choć "ciężko" idzie Ci opis co
chcesz zrobić, zasadniczo zmierzasz w dobrym kierunki.

--
P.M.





annakin - 21-06-2007 00:03

  Paweł Matejski pisze:
> annakin wrote:
>> Witam
>>
>> Proszę o wskazówkę jak osiągnąć to co niżej.
>> Mam tabele A:
>> (
>> id serial, primary key,
>> przedmiot_id integer references przedmioty(id),
>> rodzaj_zajec_id integer references rodzaje_zajec(id),
>> rok_akademicki_id integer references rok_akademicki(id)
>> )
>>
>> Czyli jest to tabela przedmiotów w konkretnym roku akademickim. Przy
>> czym w tej tabeli każdy przedmiot może wystąpić tyle razy ile jest
>> rodzajów zajęć (ćwiczenia, fakultet, wykład itp.)
>>
>>
>> Teraz potrzebuje mieć tabele B gdzie będę posiadał dokładnie te same
>> dane co w tabeli A, z tym że przedmioty maja występować pojedynczo plus
>> zdefiniowane dla nich inne wartości jeszcze. Wartości tych nie mogę
>> zdefiniować w tabeli A bo są to wartości ogólne dla przedmiotu a nie dla
>> przedmiotu i rodzaju zajęć.
>
> Jak te same? Tabela A to jedynie tabela powiązań. Poza tym żadnych danych w niej
> nie ma!
>
>> Szczerze mówiąc nie wiem jak sie za to zabrać. Będę wdzięczny za jakieś
>> wskazówki.
>
> Szczerze mówiąc nie wiem, gdzie widzisz problem. Choć "ciężko" idzie Ci opis co
> chcesz zrobić, zasadniczo zmierzasz w dobrym kierunki.
>

ok. z pomocą przyszedł trigger. wydaje sie działać. zamieszczę dla potomnych na wszelki wypadek.

#v+

CREATE OR REPLACE FUNCTION xxx() RETURNS trigger AS $$

DECLARE id integer;
BEGIN

IF tg_op = 'DELETE' THEN
SELECT INTO id id_ptr FROM aaa WHERE tok = OLD.tok AND przedmiot = OLD.przedmiot;
IF NOT FOUND THEN
DELETE FROM bbb WHERE tok = OLD.tok AND przedmiot = OLD.przedmiot;
END IF;
END IF;

IF tg_op = 'UPDATE' THEN
SELECT INTO id id_ptr FROM aaa WHERE tok = OLD.tok AND przedmiot = OLD.przedmiot;
IF NOT FOUND THEN
DELETE FROM bbb WHERE tok = OLD.tok AND przedmiot = OLD.przedmiot;
END IF;

SELECT INTO id id_ptr FROM bbb WHERE tok = NEW.tok AND przedmiot = NEW.przedmiot;
IF NOT FOUND THEN
INSERT INTO bbb VALUES (DEFAULT, NEW.tok, NEW.przedmiot, 0);
END IF;
END IF;

IF tg_op = 'INSERT' THEN
SELECT INTO id id_ssp FROM bbb WHERE tok = NEW.tok AND przedmiot = NEW.przedmiot;
IF NOT FOUND THEN
INSERT INTO bbb VALUES (DEFAULT, NEW.tok, NEW.przedmiot, 0);
END IF;
END IF;

RETURN NULL;

END
$$ LANGUAGE plpgsql;

------------------------

CREATE TRIGGER ttt AFTER INSERT OR UPDATE OR DELETE on aaa FOR EACH ROW EXECUTE PROCEDURE xxx();

#v-

--
annakin
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MS SQL 2005] =?windows-1250?Q?Ilo=9C=E6_wiersz=F3w_w_zbiorze_wynikowym?= [MSSQL 2000] czas wykonywania instrukcji INSERT - czy zalezy od ilosci danych w tabeli? [MSSQL] Jak uj?c w tabeli [ID usera] (zamiast tekstu) zuwierzytelniania NT? [mysql 4.0.24] INSERT do tabeli z automatyczną inkrementacją wartości pola. [MsSQL]Jaka blokada tabeli dla pobrania następnego nr faktury [ms sql 2000] Replikacja - zmiana typu kolumny w tabeli ? Nazwa tabeli jako parametr do procedury dla SQL2005 Server - jakprzekazac? [MySQL] Kopiowanie jednej tabeli do drugiej z dodatkowymi zmiennymi [sybase] Jak w sprawdzić strukturę obiektu (tabeli) w Interactive SQL ??? [mysql] Procedura z przekazywaną nazwą tabeli jako parametr
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • adwokat.keep.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com