Novo

Forum kao aplikacija na telefonu

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

  • 5 odgovora
  • 1.663 pregleda

Najnovija ↓

MySQL trigger + concat() 21.01.2013. u 15:25 · pre 167 meseci #1
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?! :)
Re: MySQL trigger + concat() 22.01.2013. u 00:26 · pre 167 meseci #4
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
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: MySQL trigger + concat() 22.01.2013. u 11:58 · pre 167 meseci #5
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!
Re: MySQL trigger + concat() 22.01.2013. u 12:18 · pre 167 meseci #6
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" ..
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme