Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Inkrementacija vrijednosti u bazi

[es] :: Baze podataka :: Inkrementacija vrijednosti u bazi

[ Pregleda: 5019 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Alexandar_d
Alexandar

Član broj: 44699
Poruke: 139
*.PPPoE-552.sa.bih.net.ba.



+7 Profil

icon Inkrementacija vrijednosti u bazi16.08.2006. u 20:45 - pre 214 meseci
Interesuje me koji je upit da mi automatski poveca vrijednost za 1 u nekoj bazi na nekom polju? Znaci da je ne moram prvo citat vrijednost iz polja, pa da ga rucno inkrementujem pa ga onda opet snimam u polje kao novu vrijednost, mozel nekako da se nekim upitom odmah vrijednost (int) poveca za 1?
AleXandar
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dialup.neobee.net.



+35 Profil

icon Re: Inkrementacija vrijednosti u bazi16.08.2006. u 21:00 - pre 214 meseci
'UPDATE tabela SET brojac=brojac+1';
 
Odgovor na temu

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
*.adsl.sezampro.yu.



Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 12:19 - pre 213 meseci
Imam slicno pitanje pa cu ga postaviti u ovoj temi, nadam se da se pokretac teme nece ljutiti:
(napominjem svoje oskudno iskustvo sa bazama podataka)

SQL Server, svojstvo Identity:

"IDENTITY NE GARANTUJE DA CE REDOVI BITI JEDINSTVENI. Da bi se garantovala jedinstvenost redova,
mora se formirati JEDINSTVENI INDEKS nad kolonom identiteta."
(iz knjige 'Vodic kroz SQL Server7')

Sa druge strane:

Indeks ne treba kreirati na PK. cak se u literaturi moze naci savet da indekse treba
izbegavati osim ako zaista nisu neophodni.

Pitanje je:

Kako se ''skolski'' kreira auto-inkrementalni PrimaryKey?

Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 13:03 - pre 213 meseci
Imas vise opcija npr. ovako www.elitesecurity.org/t183811-0#1214583
Za jednostavnije projekte(tabele) je i identity dovoljno dobar.

Citat:

Indeks ne treba kreirati na PK. cak se u literaturi moze naci savet da indekse treba
izbegavati osim ako zaista nisu neophodni.


?!?!?? Ovo zaboravi. Na PK obavezno, na Fk takodje i na polja koja se cesto pretrazuju bi trebalo staviti indexe.
Dobro mozda index nema efekta na tabeli od samo 400-500 slogova.
Pozdrav
RTFM
 
Odgovor na temu

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
*.adsl.sezampro.yu.



Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 13:47 - pre 213 meseci
Nisam se dobro izrazio,
Jedinstveni Indeks, ne Index (mislim na ogranicenje UNIQUE koje
-eksplicitno- Nije primenljivo na PK).

ogranicenje PK samo po sebi stvara Jedinstveni Indeks.
Stoga je dovoljno kombinovati ogranicenje PK i Identuty?


Sta je bolje od Identity/autoincrement (na temi na koju si ukazao:
"...Ovo je bolje rjesenje nego koristenje polja tipa autoincrement")?



[Ovu poruku je menjao diplIng dana 24.09.2006. u 15:55 GMT+1]
Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
 
Odgovor na temu

axx420

Član broj: 107229
Poruke: 62
*.ptt.yu.



+1 Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 14:58 - pre 213 meseci
Evo primer:
Code:
CREATE TABLE MojaTabela
  (MojPK int NOT NULL IDENTITY (1,1) primary key clustered)

Jeste, PK je sam po sebi Jedinstveni Indeks pa mu oznaka UNIQUE nije ni potrebna.

Mada se SQL server neće buniti ako dodaš:
Code:
create unique index MojIndeks on MojaTabela (MojPK)

Što bi bilo uzaludno trošenje resursa pošto nije uopšte potreban pored PK.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 15:45 - pre 213 meseci

pstojanovic je napisao:
Citat:

Kao što reče WhoIs, jedan od načina je SQL upit koji traži prvi sledeći slobodni broj. Ini datoteka je ok, ako je stavljena na mrežu pa joj imaju svi korisnici pristup. Ako je definisana za lokalnog korisnika, imaš konflikt. Slično, nije loše ni da se napravi tabela koja definiše tipove dokumenata + brojače za svaki tip, tako da se prilikom _upisa_ novog dokumenta povećava brojač po tipu. Pri tome treba imati u vidu da korisniku ne treba biti garantovan novi broj dokumenta sve do trenutka upisa u bazu, da se ne bi stvarale nepotrebna preskakanja.


Ovakvi brojaci se najcesce koriste za generisanje id dokumenta, ali moze za bilo sta da posluzi.
RTFM
 
Odgovor na temu

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
*.adsl.sezampro.yu.



Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 17:09 - pre 213 meseci
Ako se koristi posebna tabela za kljuceve, gde je preporucljivo smestiti logiku (increment, 'UPDATE...'),
verovatno u bazi (Funkcija baze/trigger)?


Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 18:45 - pre 213 meseci
Ja koristim triger. U projektima gde se koristi n-slojna aplikacija, objektni model....tada bi i tu logiku trebalo smestiti u bussines klasu na aplikativnom serveru, ne u bazu podataka. Pozdrav
RTFM
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Inkrementacija vrijednosti u bazi24.09.2006. u 21:11 - pre 213 meseci
Code:

CREATE TABLE MojaTabela
  (MojPK int NOT NULL IDENTITY (1,1) primary key clustered)

Izvinjavam se što se ubacujem u temu, ali meni ovo neće da prođe na PostgreSQL 8.1!!!
Odnosno, kako je ispravno to ispisati u PostgreSQL 8.1? Na SQL Serveru 2000 sam probao
i naravno funkcioniše i iz Query Analizer-a, a i ako tabelu pravim pomoću wizard-a.

Hvala unapred.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Inkrementacija vrijednosti u bazi25.09.2006. u 09:18 - pre 213 meseci
Sintakasa jednog SUBP verovatno nece raditi na drugom SUBP. Identity je specifican za MSSQL. Imas u pg-u serial.
Citirano iz Postgressql helpa:
Citat:

8.1.4. Serial Types
The data types serial and bigserial are not true types, but merely a notational convenience for setting up unique identifier columns (similar to the AUTO_INCREMENT property supported by some other databases). In the current implementation, specifying

CREATE TABLE tablename (
colname SERIAL
);
is equivalent to specifying:

CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL
);


Pozdrav
RTFM
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.dialup.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Inkrementacija vrijednosti u bazi25.09.2006. u 09:25 - pre 213 meseci
PostgreSQL nema IDENTITY niti CLUSTERED.

Nesto slicno se postize sa
Code:

CREATE SEQUENCE s_mojatabela_mojpk
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;

CREATE TABLE mojatabela (
  MojPK INT8 NOT NULL DEFAULT nextval('s_mojatabela_mojpk')
);

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Inkrementacija vrijednosti u bazi25.09.2006. u 10:58 - pre 213 meseci
Što se tiče mog pitanja, zahvaljujem se na odgovoru...
Pozdrav.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Baze podataka :: Inkrementacija vrijednosti u bazi

[ Pregleda: 5019 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.