Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.717 pregleda

Najnovija ↓

Potrebna pomoc oko INSERT naredbe. 05.04.2007. u 17:58 · pre 238 meseci #1
Imam sledecu tablelu:
create table Lista
(
ID int primary key not null,
Naziv nvarchar(50) not null,
UserName nvarchar(20) not null
)

Prilikom svako novog unosa hocu da ID bude za 1 veci od narednog. Kako da to izvedem?

Znam da trenutno najveci ID dobijam kao:
select max(id) from Lista; ,
ali nemam pojma kako da to uklopim u insert naredbu sa Naziv-om i UserName-om. Bilo bi lepo da mi neko napise primer u kome se unosi nova lista sa nazivom:'blablabla' za username='tralala':))
Unapred hvala!

Re: Potrebna pomoc oko INSERT naredbe. 05.04.2007. u 18:44 · pre 238 meseci #2
Nisi rekao koji DBMS koristiš, da dobiješ konkretan odgovor?
Većina ima "autoincrement", a ako ga ne koristiš to možeš i ručno iz same aplikacije.
Za određeni atribut (u tvom slučaju ID) pronađeš onaj sa najvećom vrednošću i povećaš ga za jedan. Ako nema ni jedan slog, konstatuješ nulu i dodeliš vrednost 1. Ukoliko se obriše neki slog, dolazi do izmene redosleda, rupa, pa ako DBMS to sam ne update -uje, bila je tema i o tome, pa pogledaj SQL Mozgalica br. 3...
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Potrebna pomoc oko INSERT naredbe. 05.04.2007. u 22:25 · pre 238 meseci #4
Jos jedna napomena:
Ja znam sta treba da uradim ali to ne umem:((!!

Dakle, znam da je potrebno da pronadjem element sa najvecim ID-om i da ga povecam za jedan. Ali je problem sto ne umem da napisem sql naredbu koja to radi u okviru insert naredbe. Samo pronalazenje najveceg ID-a nije nikakav problem ali to ne umem da uklopim u INSERT!

Kako treba da izgleda insert naredba koja to odradjuje?

Re: Potrebna pomoc oko INSERT naredbe. 06.04.2007. u 16:26 · pre 238 meseci #5
Prvi nacin - preko varijable:
Code:

  declare @id int

  select @id = max(ID) + 1 from Lista

  insert into Lista(ID, Naziv, UserName) values(@id, 'naziv', 'username')



Drugi nacin - direktno umetanje selecta:
Code:


  insert into Lista(ID, Naziv, UserName)
  select max(ID) + 1, 'naziv, 'username' 
    from Lista

Re: Potrebna pomoc oko INSERT naredbe. 12.04.2007. u 03:26 · pre 238 meseci #6
create table Lista
(
ID int identity(1, 1) primary key not null,
Naziv nvarchar(50) not null,
UserName nvarchar(20) not null
)


autoincrement ti je identity(1, 1) u MS SQL i to je najbolje rijesenje.

ako upotrebljavas max(id) obavezno blokiraj cijelu tabelu :

Code:

declare @id int
select @id = max(ID) + 1 from Lista With(TablockX)
insert into Lista(ID, Naziv, UserName) values(@id, 'naziv', 'username')


Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme