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

Insert sa select komadom

[es] :: MySQL :: Insert sa select komadom

[ Pregleda: 1398 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Insert sa select komadom21.11.2011. u 11:01 - pre 151 meseci
Pozdrav svima.

Interesuje me kako mogu kombinovati insert i select komande a da pri tome podaci koji se upisuju nisu već u tabeli.
Evo primer.
Imam tabelu postanski_broj i polja id,mesto, broj
id mesto broj
1 Novi Sad 21000
2 Beograd 11000

E sad kad upisujem recimo slog id=3
insert into postanski_brojevi select max(id)+1, 'Niš', 18000 from postanski_brojevi
Interesuje me kako ispitati pre upisa da slog Niš ili 18000 nije prethodno upisan???
Pokušavao sam sa where not exists ali mi nešto ne ide.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Insert sa select komadom21.11.2011. u 11:31 - pre 151 meseci
Code (sql):

INSERT INTO postanski_broj (id, mesto, broj)
   SELECT MAX(id)+1, 'Niš', '18000'
   FROM postanski_broj
   WHERE NOT EXISTS (SELECT * FROM postanski_broj WHERE mesto = 'Niš' OR broj = '18000')
 
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: Insert sa select komadom21.11.2011. u 11:49 - pre 151 meseci
Probavao sam i tako ali mi javlja gresku:
Column 'id' cannot be null

Ovo bi trebalo ustvari da znaci da slog postoji u tabeli?



[Ovu poruku je menjao mish_ns dana 21.11.2011. u 13:08 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.rs.



+33 Profil

icon Re: Insert sa select komadom21.11.2011. u 17:29 - pre 151 meseci
A što pre svega ne bi tu kolonu "id" postavio na AUTO_INCREMENT, a onda i neki UNIQUE indeks na kolone "mesto" i "broj"?
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: Insert sa select komadom22.11.2011. u 06:22 - pre 151 meseci
Da...
Id može da bude, ali i ne mora biti auto-increment...pošto sam planirao da svrednosti idu od 100,200,300 i sl.
Što se tiče unique, potpuno si u pravu.

HVALA
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: Insert sa select komadom22.11.2011. u 13:44 - pre 151 meseci
Pozdrav evo probavao sam da stavim i id autoincremnet.
Međutim javlja se problem kod insert-a. Ako imam već neko mesto ili broj unet javlja Duplicate key... sto je uredu ali se istovremeno autoincrement uvecava.
Da li ima neki nacin da se to zabrani ili je bolje rucno uvecavati vrednost polja?

StoredProcedurom može, ali da li može jednim upitom?
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
..106.109.adsl.dyn.beotel.net.



+18 Profil

icon Re: Insert sa select komadom22.11.2011. u 17:14 - pre 151 meseci
Video sam sad na netu da ima promenljiva
innodb_autoinc_lock_mode

Kad je postavim na nulu i kada Insert komanda ne uspe onda se i ne uvećava autoincrement polje.
 
Odgovor na temu

[es] :: MySQL :: Insert sa select komadom

[ Pregleda: 1398 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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