Avatar billede thewizard Nybegynder
06. marts 2010 - 18:15 Der er 9 kommentarer

Indsæt og delete i én statement

Hej knægte,

3 tabeller: Kursus, relation, tilrådige lokaler.

relation holder 2 foreign keys fra kursus og tilrådige lokaler.

Når jeg indsætter en relation (et kursus benytter en af de tilrådige lokaler), bliver det indsat i relationen - men SAMTIDIGT skal det slettes fra tilbudet fra "tilrådige lokaler" slettes.

Har nogen en god løsning?

Nej jeg kan ikke bruge kun 2 tabeller, kursus og lokaler, da ét lokale kan ha' flere rows i "tilrådige lokaler", via forskellige datoer/klokkeslæt.
Avatar billede erikjacobsen Ekspert
06. marts 2010 - 21:06 #1
Du kan formentlig bruge transaktioner - eller måske meget primitivt: låse tabellerne mens du arbejder på dem.
Avatar billede thewizard Nybegynder
06. marts 2010 - 21:51 #2
Hehe ja det er lidt primitivt. "Transaktioner" kender jeg ikke til.
Avatar billede erikjacobsen Ekspert
07. marts 2010 - 00:05 #3
Låsning af tabellerne er nok primitivt, men effektivt, og hvis der ikke er ret meget trafik så går det vel nok. Transaktioner kan jeg ikke forklare kort.
Avatar billede arne_v Ekspert
07. marts 2010 - 04:13 #4
Hvis problemet er et samtidigheds problem kan låsning af tabellerne løse problemet.

Hvis problemet er integritet og samtidighed kan brug af transaktioner og InnoDB tabeller fremfor MyISAM tabeller løse problemt.

Hvis problemet er noget andet, så skal vi nok have at vode hvad problemet er.

Jeg forstår iøvrigt ikke din logik. Hvis en ny række i relation peger på en række i "lokaler til rådighed", så kan du jo ikke slette den række det peges på.

Generelt er det en rigtigt skidt ide at flytte noget fra en tabel til en anden table når det skifter status.
Avatar billede thewizard Nybegynder
07. marts 2010 - 14:18 #5
Du har nok ret, arne_v... Det med at det er en skidt ide. Jeg laver en "reserveret" attribute til tilrådighed, og dropper relationen.

Bare læg et svar begge to, så deler vi pointene mellem jer.
Avatar billede arne_v Ekspert
07. marts 2010 - 15:24 #6
Hvis du ikke sletter kan du jo netop bruge din relation. Omend 1:M uden ekstra tabel vel er nok.
Avatar billede arne_v Ekspert
07. marts 2010 - 15:25 #7
og et svar fra mig
Avatar billede thewizard Nybegynder
08. marts 2010 - 13:42 #8
Jeg venter lige 24 timer på erikjakobsens svar.
Avatar billede arne_v Ekspert
26. april 2010 - 03:38 #9
Har du set hans "web site" ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester