@agsidorov

Как распарсить TABLE CREATE STATEMENT?

Привет! Есть к примеру вот такой sql (условно):

CREATE TABLE `call_log` (
  `uniqueid` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `channel` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `channel_group` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
  `type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
  `server_ip` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
  `extension` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `number_dialed` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
  `caller_code` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  `start_time` datetime DEFAULT NULL,
  `start_epoch` int(10) DEFAULT NULL,
  `end_time` datetime DEFAULT NULL,
  `end_epoch` int(10) DEFAULT NULL,
  `length_in_sec` int(10) DEFAULT NULL,
  `length_in_min` double(8,2) DEFAULT NULL,
  PRIMARY KEY (`uniqueid`),
  KEY `caller_code` (`caller_code`),
  KEY `server_ip` (`server_ip`),
  KEY `channel` (`channel`),
  KEY `start_time` (`start_time`),
  KEY `end_time` (`end_time`),
  KEY `time` (`start_time`,`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Вопрос в том как его распарсить и запихнуть в массив например. Т.е. отдельно столбцы, ключи и тд
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
Falseclock
@Falseclock
решаю нестандартные задачи
в вашем случае самым правильным вариантом будет взять исходники mysql и сделать аналог для вашего случая...

либо самому парсить запрос и выводить его в виде xml

либо обратиться туда, где уже все давно сделали: www.dpriver.com/blog/list-of-demos-illustrate-how-...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы