Avatar billede arvad Nybegynder
11. oktober 2002 - 10:51 Der er 11 kommentarer og
1 løsning

select max(userId)

Jeg har i postgresql skrevet
update areaId set areaId = (select max(areaId) from areaId) + 1

men dette må jeg ikke skrive i mysql - Hvordan kan jeg lave dette kald??
Avatar billede keysersoze Ekspert
11. oktober 2002 - 10:56 #1
fordi mysql ikke understøtter.. erhm - hvad hedder det nu... ja, så du ikke kan lave en sql inde i en sql, og det er det du gør ved både at have en update og en select i samme sætning.

du er derfor nødt til at splitte den op i to sql'er
Avatar billede morw Nybegynder
11. oktober 2002 - 10:56 #2
Hvad er det lige du skal bruge det til? Du har jo igen WHERE dek på så du opdatere alle rækker til de højeste id +1.

Ingen subselects i MySQL så du skal lave det i 2 quries.

Men prøv lige at forklare i hvilket sammenhæng - måske er der igen anden løsning.
Avatar billede arvad Nybegynder
11. oktober 2002 - 10:59 #3
det var et uddrag af en sql...

OK - Man kan altså ikke bruge nestede sql-kald - Jeg har en db med id's til en anden db

dvs. den ene db bruges når man skal bruge et nyt id når man vil indsætte i den anden.
Avatar billede proaccess Nybegynder
11. oktober 2002 - 11:03 #4
SELECT &nyt:=areaId FROM areaId;
INSERT INTO areaId (areaId) VALUES &nyt;
Avatar billede disky Nybegynder
11. oktober 2002 - 11:04 #5
Desværre mangler MySQL en masse af disse smarte features.

Derfor bliver du nød til at lave to queries til databasen, eller skifte database.
Avatar billede arvad Nybegynder
11. oktober 2002 - 11:13 #6
proaccess:: Det kunne jeg så overhovedet ikke få til at virke...
Avatar billede lars_n Nybegynder
11. oktober 2002 - 11:18 #7
I MySQL version 4.1 kommer der understøttelse af nestede subquerys! I kan evt prøve beta versionen af 4'eren.
Avatar billede disky Nybegynder
11. oktober 2002 - 11:21 #8
det kode proaccess har postet er heller ikke korrekt sql syntax, det ligner noget fra pascal.
Avatar billede proaccess Nybegynder
11. oktober 2002 - 11:23 #9
Undskyld, det skulle være snabel-a

SELECT @nyt:=areaId FROM areaId;
INSERT INTO areaId (areaId) VALUES @nyt;

>Disky: MySQL laver User-variables på den måde...  ;0)
Avatar billede arvad Nybegynder
11. oktober 2002 - 11:23 #10
Det er det jeg mener... Den virker ikke når jeg skriver mysql - enter og så prøver at skrive koden...

Hvis mysql 4.1 var her nu ville det være kanon!! Men det er den ikke (Kun derfor henter jeg nu 600 mb db2 trial)
Avatar billede proaccess Nybegynder
11. oktober 2002 - 11:26 #11
Skal vel egentlig være...

SELECT @nyt:=areaId FROM areaId;
INSERT INTO areaId (areaId) VALUES (@nyt + 1);

for at lægge een til...
Avatar billede arvad Nybegynder
11. oktober 2002 - 12:00 #12
Det skal lige testes - Mandag...
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