Avatar billede fastpoint Nybegynder
13. maj 2005 - 10:29 Der er 10 kommentarer og
2 løsninger

Autonummer i sql?

tabellen er denne

DROP TABLE Ordre CASCADE CONSTRAINTS;
CREATE TABLE Ordre (
    ordreNr NUMBER ( 6 ) NOT NULL,
    bestillingsDato DATE NOT NULL,
    leveringsDato DATE NOT NULL,
    kundeID NUMBER ( 6 ) NOT NULL REFERENCES kunde,
        leveringStatus VARCHAR2 ( 10 ) NOT NULL,
          PRIMARY KEY (ordreNr)
    );

hvordan skal SQL sætningen se ud hvis man vil have dens selv generere et automatisk ordreNr?
Avatar billede fennec Nybegynder
13. maj 2005 - 10:41 #1
Hvilken database er det til (Access, mySql...)???
Avatar billede fastpoint Nybegynder
13. maj 2005 - 10:43 #2
Desværre ikke access som vi kender lidt til. Der er det simpelt nok:)

Det er oracle 9i
Avatar billede arne_v Ekspert
13. maj 2005 - 10:48 #3
Oracle bruger ikke auto number/increment a la Access/MySQL/SQLServer/Sybase
men sequences til at opnå samme funktionalitet.
Avatar billede fennec Nybegynder
13. maj 2005 - 10:49 #4
Du kan se et eks her:
http://eksperten.dk/spm/56278
Avatar billede arne_v Ekspert
13. maj 2005 - 10:50 #5
http://sqlzoo.net/howto/source/z.dir/tip000001/sqlserver

og klik på Oracle tab for at sammenligne
Avatar billede fastpoint Nybegynder
13. maj 2005 - 11:05 #6
I har Create Ordre tabel koden.

her er insert koden

INSERT INTO Ordre VALUES
--ordreNr, betillingsDato, leveringsDato, kundeID
(sq.nextval,to_date('23-apr-05','DD MON YY'),to_date('27-apr-05','DD MON YY'),000789,'Reserveret');
INSERT INTO Ordre VALUES
(sq.nextval,to_date('25-apr-05','DD MON YY'),to_date('27-apr-05','DD MON YY'),000456,'Reserveret');
INSERT INTO Ordre VALUES
(sq.nextval,to_date('25-apr-05','DD MON YY'),to_date('27-apr-05','DD MON YY'),000123,'Solgt');
INSERT INTO Ordre VALUES
(sq.nextval,to_date('23-apr-05','DD MON YY'),to_date('23-apr-05','DD MON YY'),000789,'Solgt');


har sat sq.nextval ind hvor der skal være autoincrement. Hvor skal det andet kode være ? så sq.nextval virker? og hvordan skal den se ud. Kunne vist se mest på fennec's link
Avatar billede arne_v Ekspert
13. maj 2005 - 11:25 #7
både mit og fennec's link har synbtaxen for CREATE SEQUENCE
Avatar billede fastpoint Nybegynder
13. maj 2005 - 11:31 #8
okay har forstået det nu.

dropper alle mine tabeller.

DROP TABLE Ordre CASCADE CONSTRAINTS;

hvad med sequence? hvis man vil nulstille? den nulstiller måske selv når databasen er tom?

i kan begge ligge et svar
Avatar billede fennec Nybegynder
13. maj 2005 - 12:12 #9
Jeg er ikke så meget inde i Oracle, så jeg ved ikke om den nulstiller sig selv. Det var faktisk pga sequence at jeg opgav at sætte mig ind i Oracle. Synes personlig at det er katastrofalt at det skal være så besværligt at lave autonummer, og det er simpelthen for dårlig fra Oracles side. Specielt fordi alle andre kan finde ud af at lave det på en forståelig måde. Og det endog for flere år siden. Men det er bare min mening :o)

.o) <-- One Eyed Jack
Avatar billede arne_v Ekspert
13. maj 2005 - 18:32 #10
du kan ændre værdien med ALTER SEQUENCE

og svar
Avatar billede arne_v Ekspert
13. maj 2005 - 18:32 #11
der er så vidt jeg ved andre databaser en Oracle som også bruger Sequence
Avatar billede arne_v Ekspert
13. maj 2005 - 18:55 #12
:-)
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
Kurser inden for grundlæggende programmering

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