Avatar billede belhauge-service Nybegynder
18. august 2011 - 20:03 Der er 12 kommentarer og
1 løsning

Hjælp til en TRIGGER i mysql

Hej jeg er ved at lave min første trigger i mysql og jeg kan ikke helt får det til at virke, håber i kan hjælpe mig..

iden er at den skal gå i system table og hente et id og derefter
oprette en kunde med dette id og så opdater system table med et nummer.. men jeg kan ikke helt få det til at virke ved ikke om det er mig der er nåde galt med..

Table (System)
SystemID
SystemDebitorNr  Løbenummer

Table (Debitor)
DebitorID
DebitorNr
DebitorName

------ min kode ----

begin
  DECLARE nr INT;
  SET @nr = (SELECT SystemDebitorNr FROM System WHERE SystemID='1');
  INSERT INTO Debitor (`DebitorID` ,`DebitorNr` ,`DebitorName`) VALUES (NEW.DebitorID, @nr, NEW.DebitorName);
  UPDATE System SET SystemDebitorNr=SystemDebitorNr+1 WHERE SystemID=1;
end
Avatar billede majbom Novice
18. august 2011 - 20:16 #1
umiddelbart ser det ud til at du gerne vil have et tal til at stige med én og bruge den i din nye linje i tabellen?

nogen grund til at du ikke bare bruger auto_increment?
Avatar billede belhauge-service Nybegynder
18. august 2011 - 20:19 #2
Ja den kan jeg ikke bruge da jeg gerne vil kun bestemme hvad min kunder skal start med af nummer så jeg vil geren hente næste kundenr og så indsætte den..
Avatar billede majbom Novice
18. august 2011 - 21:23 #3
okay, på den måde (ville bare sikre mig at du ikke gik over åen efter vand :) )

hvad sker der (ikke) ?
Avatar billede belhauge-service Nybegynder
18. august 2011 - 21:40 #4
Jeps.. ja der sker ikke så meget jeg kan ikke få den oprette og når det enlig lykkes mig så virker den ikke.. og da det er lidt nyt for mig så prøver jeg mig lidt frem har nu søge som en gal på nette uden at finde ud af om det er mig der gør nåde galt eller ej..

så håber lidt en venlig person vil hjælpe mig..
Avatar billede bauerdata Nybegynder
19. august 2011 - 01:08 #5
To start with an AUTO_INCREMENT value other than 1, you can set that value with CREATE TABLE or ALTER TABLE, like this:

mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
Avatar billede belhauge-service Nybegynder
19. august 2011 - 10:43 #6
Jamen jeg vil ikke bruge auto jeg vil have den til at hente data fra en anden tabel.
Avatar billede bauerdata Nybegynder
19. august 2011 - 11:41 #7
Jeg forstår ikke dit problem i såfald.
Hvorfor bruger du ikke som alle andre autoincremet ?
Hvorfor vil du have en tabel med næste nummer ?
Den tabel du henter fra og tæller op med en. Hvonår opdaterer du den. ?
Hvis der er mere end en bruger på systemet får de så samme værdi ?
Avatar billede bauerdata Nybegynder
19. august 2011 - 11:45 #8
Ser netop at du opdaterer efter at have valgt en værdi.
Hvad hvis andre kommer ind og select'er samme værdi.
Du bliver nødt til at lave nogle låsninger for at det kan virke med flere brugere
Avatar billede belhauge-service Nybegynder
19. august 2011 - 12:05 #9
Ja som jeg start med at fortælle så er jeg meget ny inden for bruge af TRIGGER selv om jeg har arbejder i en del år med mysql har jeg ikke før nu prøve at arbejder med trigger, og da min ide er at jeg i dette telfelde bare vil have hente en værdi fra en tabel og smide den over i en kunde tabel. sender er det min ide at udvide system sådan at jeg kan oprette flere virksomheder og der skal kun jo ikke bare have et id som passer til tabel men et der passer til virksomhede. sådan at virksomhed a som oprette en kunde ikke får ide nummer 3552 for de det er næste id i række men får id nr 1. da det er deres første kunde. men som du selv fortæller så ville det da ikke gøre nåde med sikkerhed på sådan at den kan tåle flere bruger. så hvis du kan hjælpe mig vil jeg blive meget glad da jeg har søge meget på nette uden at finde hjælp.
Avatar billede belhauge-service Nybegynder
20. august 2011 - 12:38 #10
Syndes ikke det er til meget hjælp det her.

kan du hjælp mig ?
Avatar billede majbom Novice
21. august 2011 - 17:04 #11
jeg kan som sagt desværre ikke hjælpe, jeg undredes bare over måden at gøre det på, men efter din forklaring giver det mere mening :)
Avatar billede belhauge-service Nybegynder
21. august 2011 - 22:56 #12
Lukket og opretter en ny tråd da denne virker død..
Avatar billede belhauge-service Nybegynder
21. august 2011 - 22:56 #13
lukket
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