ďťż
 
Usuwanie rekordów z powiązanej tabeli ďťż
 
Usuwanie rekordów z powiązanej tabeli
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

Usuwanie rekordów z powiązanej tabeli



KA-RAM-BA - 25-05-2006 00:50
Usuwanie rekordów z powiązanej tabeli
 
Mam do Was pytanie. Nie bardzo wiem jak zapytać. Ale może zrozumiecie mnie i
pomozecie.

MSDE

Tworzę sobie "przykładowo" dwie tabele: Czytelenicy i Ksiazki

CREATE TABLE [dbo].[Czytelnicy] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Imie] [varchar] (35) COLLATE Polish_CI_AS NOT NULL ,
[Nazwisko] [varchar] (55) COLLATE Polish_CI_AS NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Ksiazki] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[ID_Czytelnika] [int] NOT NULL ,
[Tytul] [varchar] (150) COLLATE Polish_CI_AS NOT NULL ,
[Autor] [varchar] (80) COLLATE Polish_CI_AS NOT NULL
) ON [PRIMARY]
GO

Co trzeba dopisać by te tabele były ze sobą powiązane w ten sposób, że jak
usunę z tabeli Czytelnicy jakiegoś czytelnika to z tabeli Ksiązki zostaną
też usuniete automatycznie wszystkie rekordy odnoszą ce się do danego
czytelnika?

--
KA-RAM-BA





Radosław Witkowicki - 25-05-2006 00:50

  > Mam do Was pytanie. Nie bardzo wiem jak zapytać. Ale może zrozumiecie mnie
> i
> pomozecie.
>
> MSDE
>
> Tworzę sobie "przykładowo" dwie tabele: Czytelenicy i Ksiazki
>
> CREATE TABLE [dbo].[Czytelnicy] (
> [ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
> [Imie] [varchar] (35) COLLATE Polish_CI_AS NOT NULL ,
> [Nazwisko] [varchar] (55) COLLATE Polish_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
> CREATE TABLE [dbo].[Ksiazki] (
> [ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
> [ID_Czytelnika] [int] NOT NULL ,
> [Tytul] [varchar] (150) COLLATE Polish_CI_AS NOT NULL ,
> [Autor] [varchar] (80) COLLATE Polish_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
> Co trzeba dopisać by te tabele były ze sobą powiązane w ten sposób, że jak
> usunę z tabeli Czytelnicy jakiegoś czytelnika to z tabeli Ksiązki zostaną
> też usuniete automatycznie wszystkie rekordy odnoszą ce się do danego
> czytelnika?

Najlepiej stworzyć triger-a. A jak się robi trigera to
zajrzyj do dokumentacji. Nie znam sie na MSSQL.

Pozdro




Artur Muszynski - 25-05-2006 00:50
=?iso-8859-2?Q?Re:_Usuwanie_rekord=F3w_z_powi=B1zanej_tabeli? =
  "Radosław Witkowicki" <rwitkowicki@UsunTo_yahoo.co.uk> wrote in message
news:e52ft0$486$1@nemesis.news.tpi.pl...
>> Co trzeba dopisać by te tabele były ze sobą powiązane w ten sposób, że
>> jak
>> usunę z tabeli Czytelnicy jakiegoś czytelnika to z tabeli Ksiązki zostaną
>> też usuniete automatycznie wszystkie rekordy odnoszą ce się do danego
>> czytelnika?
>
> Najlepiej stworzyć triger-a. A jak się robi trigera to
> zajrzyj do dokumentacji. Nie znam sie na MSSQL.

Skoro się nie znasz, to po co piszesz?

CREATE TABLE Czytelnicy (
ID int IDENTITY (1, 1) NOT NULL ,
Imie varchar (35) NOT NULL ,
Nazwisko varchar (55) NOT NULL ,
CONSTRAINT PK_Czytelnicy PRIMARY KEY (ID)
)

CREATE TABLE Ksiazki (
ID int IDENTITY (1, 1) NOT NULL ,
ID_Czytelnika int NOT NULL ,
Tytul varchar (150),
Autor varchar (80),
CONSTRAINT PK_Ksiazki PRIMARY KEY (ID),
CONSTRAINT FK_Ksiazki_Czytelnicy FOREIGN KEY
(ID_Czytelnika) REFERENCES Czytelnicy (ID) ON DELETE CASCADE
)

artur




R.A.M. - 28-06-2006 00:09

  >Najlepiej stworzyć triger-a. A jak się robi trigera to
>zajrzyj do dokumentacji. Nie znam sie na MSSQL.

Następujący trigger usuwa Wydania konkretnej Książki.

ALTER TRIGGER [DeleteKsiążka]
ON [dbo].[Książki]
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Usuń wydania książki:
DELETE FROM Wydania
WHERE Wydania.ISBN IN (SELECT ISBN FROM deleted);
END





Marek TROFIMIUK - 28-06-2006 00:09

  R.A.M. <r_ahimsa_m@poczta.onet.pl> wrote:
>>Najlepiej stworzy? triger-a. A jak si? robi trigera to
>>zajrzyj do dokumentacji. Nie znam sie na MSSQL.
>
> Nast?puj?cy trigger usuwa Wydania konkretnej Ksi??ki.
>
> ALTER TRIGGER [DeleteKsi??ka]
> ON [dbo].[Ksi??ki]
> AFTER DELETE
> AS
> BEGIN
> -- SET NOCOUNT ON added to prevent extra result sets from
> -- interfering with SELECT statements.
> SET NOCOUNT ON;
> -- Usu? wydania ksi??ki:
> DELETE FROM Wydania
> WHERE Wydania.ISBN IN (SELECT ISBN FROM deleted);
>
po co tak kombinować??
czy w mssql nie można założyć kluczy obcych z opcją on delete cascade??

p.

--
Marek Trofimiuk < mt20863 (at) sgh waw pl >
Primary key fingerprint: FA3C 14D8 020F FA0C 70AE 930C F63F F04B 2ADD 9DD7
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Tworzenie tabeli z =?ISO-8859-2?Q?nazw=B1_ustalan=B1_przez_?==?ISO-8859-2?Q?usera?= =?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?= Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?= [MySQL] Skopiowanie =?ISO-8859-2?Q?warto=B6ci_z_jednego_po?==?ISO-8859-2?Q?la_do_drugiego_w_jednej_tabeli=2C_r=F3=BFne_?= =?ISO-8859-2?Q?wiersze=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nocnerozmowy.xlx.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