Что эквивалентно «FOR XML AUTO» в MySQL? (за наличие строки XML, представляющей строку) - PullRequest
2 голосов
/ 16 июня 2009

В SQL Server я часто использую «FOR XML AUTO», что позволяет что-то вроде «SELECT id FROM car FOR XML AUTO» возвращать « 1 2 ». Есть ли способ сделать это в MySQL?

Я хочу сохранить этот XML в другой таблице, чтобы у меня был полный журнал изменений, внесенных в базу данных. Таблица истории будет заполнена триггерами, и каждая строка будет денормализованным представлением измененной строки; хранение XML кажется отличным способом изменить определение таблицы и не беспокоиться о том, чтобы испортить историю журнала. Поэтому мне нужен простой и простой способ иметь строку, которая может быть вставлена ​​в качестве значения данных, и эта строка должна быть XML-описанием строки.

Большое спасибо!
С уважением,

Pedro

Ответы [ 3 ]

2 голосов
/ 16 июня 2009

См. http://www.mysqludf.org/lib_mysqludf_xql/index.php для библиотеки lib_mysqludf_xql из репозитория MySQL UDF.

Библиотека предоставляет набор функций, которые генерируют вывод XML, аналогичный SQL / XML, как это видно в Oracle / SQL Server. На странице есть инструкции по загрузке / сборке / установке, а также описание библиотеки и различных функций, которые она предоставляет.

Их должно быть достаточно для использования из триггера, как вы планировали.

-Dipin

1 голос
/ 16 июня 2009

См. http://eriksdiary.blogspot.com/2007/07/xml-output-from-mysql.html

за способ сделать это в MySQL. Это обходной путь ... и не очень простой, но у afaik mysql нет простого способа сделать это

Также см .: http://www.redips.net/php/from-mysql-to-xml/, если вы планируете делать это с помощью php (гораздо более простой метод)

0 голосов
/ 16 июня 2009

Нет точно такого же предложения, но вы можете легко эмулировать его, используя:

SELECT  GROUP_CONCAT(CONCAT('<id>', id, '</id>' SEPARATOR ''))
FROM    car
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...