Vinnaren i pepparkakshustävlingen!
2006-05-03, 15:14
  #1
Medlem
Glockenspiels avatar
Enkel fråga, med ett förhoppningsvis enkelt svar:
Går det att göra ett fält i en SQL-tabell "relativ" till två (eller flera) andra fält i samma tabell?
Alltså, om jag uppdaterar Fält1 och Fält2, så vill jag att Fält3 uppdateras automatiskt.

Hur gör jag? Är det ens möjligt? Krånglar jag till det i onödan?
Citera
2006-05-03, 15:18
  #2
Medlem
Dengos avatar
Det låter som om du vill att SQL-databasen ska uppföra sig som Excel. Det är en hel del skillnader mellan de två, och mig veterligen finns det inget inbyggt sätt att låta en kolumns innehåll vara dynamiskt såtillvida att den beror på två andra kolumner och uppdateras automatiskt. Däremot är det ju lätt att slänga in ", kolumn3 = kolumn1 + kolumn2" i din UPDATE-fråga.
Vad är det du vill åstadkomma, egentligen?
Citera
2006-05-03, 15:25
  #3
Medlem
Updatera genom en stored procedure som även gör uträkningen du vill göra.

Autouppdateringar i SQL-databaser inskränker sig i princip till att man kan sätta timestamps på ändringar och autoinkrementera siffer-id:n om man vill ha unika värden på en primärnyckel t.ex.

Om det är så att du vill kombinera saker när du ställer frågor så kan du skapa vyer med union och andra logiska operationer. Då lagrar du aldrig summan av två kolumners värde i en tredje kolumn utan du får ut ett resultset som kan innehålla det.
Citera
2006-05-03, 15:30
  #4
Medlem
Glockenspiels avatar
Citat:
Ursprungligen postat av Dengo
Vad är det du vill åstadkomma, egentligen?

Inget speciellt egentligen, jag hade bara hoppats på att det skulle funka att göra så.
Men visst, i en update query så funkar det ju utmärkt, men... fan. Näe.
Det var synd helt enkelt.
Citera
2006-05-03, 15:31
  #5
Medlem
Glockenspiels avatar
Citat:
Ursprungligen postat av Belbo
Updatera genom en stored procedure som även gör uträkningen du vill göra.

Autouppdateringar i SQL-databaser inskränker sig i princip till att man kan sätta timestamps på ändringar och autoinkrementera siffer-id:n om man vill ha unika värden på en primärnyckel t.ex.

Om det är så att du vill kombinera saker när du ställer frågor så kan du skapa vyer med union och andra logiska operationer. Då lagrar du aldrig summan av två kolumners värde i en tredje kolumn utan du får ut ett resultset som kan innehålla det.

Ja, jo. Det är väl helt enkelt så jag får göra.

Attans.
Citera
2006-05-03, 16:39
  #6
Medlem
iglos avatar
Citat:
Ursprungligen postat av Glockenspiel
Ja, jo. Det är väl helt enkelt så jag får göra.

Attans.



Se till att du har MySQL 5.X i sådana fall. Annars så går det inte.
Om du ska kombinera det med PHP så får du se till att i varje fall ha en version som är högra än 5.0.4 och som är kompilerad med --with-mysqli
Annars kommer du att stöta på problem.
Citera
2006-05-05, 00:36
  #7
Medlem
Det skulle ju i och för sig kanske gå att lösa med en trigger som körs på updaten av tabellen?

Mer om triggers till mysql kan du läsa om på följande länk http://dev.mysql.com/doc/refman/5.0/en/triggers.html
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback