Novo

Forum kao aplikacija na telefonu

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

  • 1 odgovor
  • 2.398 pregleda

Najnovija ↓

insert i agregate u jednom upitu 24.01.2011. u 13:55 · pre 191 mesec #1
Pozdrav svima !!!

Da li je moguće koristeći komande INSERT ili UPDATE kao vrednost nekog polja tabele ubaciti vrednost neke agregatne funkcije, npr. COUNT(). Ovo mi je potrebno da bih prilikom upisa zapisa u tabelu računa generisao broj računa kao brojračuna/godinaračuna. Pošto podatke iz ove baze ažurira program rađen u VCNET-u, ideja je da se sa jednim INSERT odradi sve npr. INSERT INTO tblracuni (brojracuna) VALUES (COUNT(brojracuna) + 1 + tekucagodina). Ako ovakva varijanta nije moguća, postoji li neko alternativno rešenje, ali da sve bude u jednom upitu ?

Unapred hvala !!!
Re: insert i agregate u jednom upitu 24.01.2011. u 14:21 · pre 191 mesec #2
Ovako tesko da moze da se uradi. Postoje dve kombinacije
1. INSERT + UPDATE
2. INSERT + TRIGGER


------------
CREATE TABLE `testiraj` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`dat` DATETIME NOT NULL,
`genbroj` VARCHAR(45),
PRIMARY KEY (`id`)
)
ENGINE = InnoDB;


1. varijanta.
insert into testiraj(dat) values(now());
set @id=last_insert_id();
update testiraj set genbroj=concat(@id,'/',year(dat)) where id=@id;

2. varijanta
insert into testiraj(dat) values(now());

... i onda trigger uradi svoje
drop tigger a_testi;
CREATE TRIGGER `a_testi` before INSERT
ON testiraj FOR EACH ROW
BEGIN
set new.genbroj=concat((select count(*)+1 from testiraj),'/',year(new.dat));
END;


sada vidi kako ti je lakse.....
Potpis
/*A sad odo` malo napolje*/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme