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

MySQL trigger + concat()

[es] :: MySQL :: MySQL trigger + concat()

[ Pregleda: 1159 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mozdasamjaamozdainisam

Član broj: 274672
Poruke: 341
*.static.chello.nl.



+191 Profil

icon MySQL trigger + concat()21.01.2013. u 14:25 - pre 137 meseci
Pozdrav,

Imam sledeci trigger, medjutim ne uspeva mi da dobijem zeljeni rezultat;

Code:

BEGIN
    DECLARE mxRecordValue varchar(255);
    SET @domainName = (SELECT name FROM domains WHERE id = NEW.id AND type='NS' LIMIT 1); 
        SET mxRecordValue = CONCAT('mail.',@domainName);
        
    DELETE FROM records WHERE domain_id = NEW.domain_id AND type='MX';
    DELETE FROM records WHERE domain_id = NEW.domain_id AND type='A' AND name=mxRecordValue;

    INSERT INTO records (domain_id, name, type, content, ttl, prio) VALUES (NEW.domain_id, @domainName, 'MX', mxRecordValue, '86400', '10');
        INSERT INTO records (domain_id, name, type, content, ttl) VALUE (NEW.domain_id, mxRecordValue, 'A', '85.92.140.135', '86400');
        
END


Cilj je da u jednom DELETE i dva INSERT query-ja koristim varijablu mxRecordValue koja bi trebalo da bude u formatu: 'mail.domen.com';
domen.com imam u @domainName, ali nikako da napravim da dobijem mail.@domainName :(

Please pomoc?! :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL trigger + concat()21.01.2013. u 14:39 - pre 137 meseci
a sta dobijes kao rezultat?
na prvi pogled deluje ok
 
Odgovor na temu

mozdasamjaamozdainisam

Član broj: 274672
Poruke: 341
*.static.chello.nl.



+191 Profil

icon Re: MySQL trigger + concat()21.01.2013. u 15:43 - pre 137 meseci
Upisuje NULL u bazu u gornjem slucaju (a ocekujem mail.domen.com);
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL trigger + concat()21.01.2013. u 23:26 - pre 137 meseci
to znaci da ti "@domainName" ima vrednost null (posto ce concat sa null uvek biti null

za pocetak promeni

SET mxRecordValue = CONCAT('mail.',@domainName);

u

SET mxRecordValue = CONCAT('mail.',COALESCE(@domainName, 'greska'));

i vidi da li ces da dobijes mail.greska sto ce potvrditi da ti je problem u selectu pre toga ..

onda dodaj jedan prazan

SELECT 'DEBUG---->', name, '<-----DEBUG', NEW.id FROM domains WHERE id = NEW.id AND type='NS' LIMIT 1;

i cimni ga kroz mysql cli taj select bi trebalo da izadje na stdout vidi sta ces da dobijes
 
Odgovor na temu

mozdasamjaamozdainisam

Član broj: 274672
Poruke: 341
*.static.chello.nl.



+191 Profil

icon Re: MySQL trigger + concat()22.01.2013. u 10:58 - pre 137 meseci
Bogdane,

Hvala puno na pomoci, upravno naznaka da imam null negde mi je pomogla da pronadjem gresku (SELECT je imao gresku u sebi, hvatao pogresno polje).

Sada sve radi - a usput sam naucio in novu komandu COALESCE :)

Ako ti nije problem (ovo nije toliko hitno, kad budes imao vremena):
nije mi najjasniji ovaj deo:


"SELECT 'DEBUG---->', name, '<-----DEBUG', NEW.id FROM domains WHERE id = NEW.id AND type='NS' LIMIT 1;

i cimni ga kroz mysql cli taj select bi trebalo da izadje na stdout vidi sta ces da dobijes"

Ovo mislis da ubacim u (nov, prazan) trigger sa istim parametrima (AFTER INSERT)?
A zatim da preko CLI-a izvrsim jedan insert i da vidim sta cu dobiti?

Samo mi potvrdi da li sam ovo dobro razumeo jer verujem da ce mi pomoci u debagovanju i za ubuduce.

Jos jednom hvala puno!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL trigger + concat()22.01.2013. u 11:18 - pre 137 meseci
dobro si razumeo (nema potrebe to sada da radis posto si resio problem)

ako imas trigger, storred proceduru etc etc ... i usred uradis npr

SELECT "stigao sam dovde";

ako izvrsis upit koji cima tu sp ili trigger trebalo bi u konzoli da vidis "stigao sam dovde" ..
 
Odgovor na temu

[es] :: MySQL :: MySQL trigger + concat()

[ Pregleda: 1159 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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