Autor Zpráva
bartek
Profil
Zdravim,

používáme program SymmetricDS,který pomocí replikací dat propojuje různé servery a posílá mezi sebou data. Nově zkoušíme použít MySQL,se kterým nemáme zkušenosti. Uvedený program vytvoří pro svou komunikaci sadu tabulek a triggerů. Následně triggery nejdou přeložit. Separací textu z vytvořeného triggeru jsem našel, v čem je problém, že nejde trigger přeložit.

select replace('new.autoincr','\','\\')

Tedy funkce mysql "replace", nahrazení "lomítka", "escapovaným lomítkem". Pokud jsem tento dotaz zkusil samostatně v MySQL přes Views, také nefunguje. Jelikož SymmetricDS je celosvětově používaný program,předpokládám,že tento zápis je v pořádku.

Tedy,je někde možné v rámci MySQL (settings,ini soubor apod) nastavit nějakou vlastnost,aby výše uvedený dotaz s replace zafungoval?

Děkuji za jakoukoliv reakci
M.Klinger
Alphard
Profil
Už to první \ rozbije ukončení řetězce, je třeba zdvojit \\. A nahrazovat tedy asi za \\\\. Pokud chcete, aby se z \ stalo \\.
bartek
Profil
Děkuji za odpověď. Zeptám se možná hloupě,ale nějaká možnost nastavení MySQL tak,aby brala ten první případ,tj.
select replace('new.autoincr','\','\\') neexistuje?

Jak jste psal,zdvojení lomítek pomůže,ale zdá se mě "divné",že SW SymmetriDS by triggery zapsal explicitně již s chybou.
Kajman
Profil
bartek:
nastavení MySQL tak,aby brala ten první případ
http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_no_backslash_escapes
bartek
Profil
Vyřešeno.

Děkuji za přesnou a rychlou radu,to bylo přesně to,co jsem hledal.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: