klíče   zodpovězená otázka

SQL, Databáze

Dobrý den,

mám 2 tabulky users a profile.Jde pomocí cizího klíče (případně jinak, ale jen pomocí database ) udělat : aby když přidám záznam do tabulky users ,tak aby se přidal do tabulky profile do sloupce user záznam, který bude mít stejnou hodnotu jako právě přidaná hodnota v tabulce users a sloupci user.

předem děkuji za odpověď

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Co takhle trigger??

nahlásit spamnahlásit spam 0 odpovědětodpovědět

nevím co to je ale skusím google

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Obdoba událostí. Pokud se do nějaké tabulky například přidá nebo odstraní záznam, SQL server umí při této události spustit třeba uloženou proceduru. Je to záležitost SQL serveru, ne klientské aplikace, což je výhoda.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tajže ten trigger bych mohl vyrobit třeba takto:

CREATE TRIGGER [add_user_profile]
ON Users
FOR INSERT
AS INSERT INTO Profile ([User],[Web]) VALUES (Users.UserName,'abcdefghchijklmnopqrs')

Ale píše mi to chybu že tam nemůže být Users.UserName tak nevím jak tam mam dosadit tu hodnotu z tabulky Users... Poradím mi ještě někdo prosím ?? zatíím děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

K tomu slouží virtuální tabulka inserted. Ta obsahuje v rámci insert triggeru vložené záznamy (stejně jako updated u delete a update triggeru):

CREATE TRIGGER [add_user_profile]
ON Users
FOR INSERT
AS BEGIN
   INSERT INTO Profile
      ([User],[Web])
      select [UserName], 'abcdefghchijklmnopqrs'
         from inserted
END

Je to kvůli možnosti vkládat v rámci insertu více záznamů (popřípadě při updatu nebo deletu). Trigger se pro ně spustí nejedou, nikoliv pro každý zvlášť.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji mnohokrát, koukám že se budu muset doučit i SQL v php jsem používal jenom select, insert a delete vše ostatní jsem dělal ve webu. A ještě blahopřeji k 1000ci příspěvků :))

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback