Novo

Forum kao aplikacija na telefonu

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

  • 6 odgovora
  • 1.981 pregleda

Najnovija ↓

Insert sa select komadom 21.11.2011. u 12:01 · pre 181 mesec #1
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.
Re: Insert sa select komadom 21.11.2011. u 12:31 · pre 181 mesec #2
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')
 
Re: Insert sa select komadom 21.11.2011. u 12:49 · pre 181 mesec
izmenjeno 1 put, poslednji put mish_ns 21.11.2011. u 13:08
  1. mish_ns21.11.2011. u 13:08zapis iz teksta poruke
#3
Probavao sam i tako ali mi javlja gresku:
Column 'id' cannot be null

Ovo bi trebalo ustvari da znaci da slog postoji u tabeli?
Re: Insert sa select komadom 21.11.2011. u 18:29 · pre 181 mesec #4
A što pre svega ne bi tu kolonu "id" postavio na AUTO_INCREMENT, a onda i neki UNIQUE indeks na kolone "mesto" i "broj"?
Re: Insert sa select komadom 22.11.2011. u 07:22 · pre 181 mesec #5
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
Re: Insert sa select komadom 22.11.2011. u 14:44 · pre 181 mesec #6
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?
Re: Insert sa select komadom 22.11.2011. u 18:14 · pre 181 mesec #7
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme