Вопрос № 82244: Уважаемые эксперты! Есть БД, составленная другими людьми, в ней огромная куча таблиц, по наименованию которых невозможно понять о их содержании. Т.е. наименования типа Tabl004566, tabl6546 и т.д. Надо бы кое-что поправить в БД, но пересматривать кучу...Вопрос № 82383:
Добрый день уважаемые эксперты.
Подскажите в чем проблема
Пишу запрос select * from Raschet where cod="test-test" или select * from Raschet where (cod="123-123")
Выдается ошибка Overflow occurred d...
Вопрос № 82.244
Уважаемые эксперты! Есть БД, составленная другими людьми, в ней огромная куча таблиц, по наименованию которых невозможно понять о их содержании. Т.е. наименования типа Tabl004566, tabl6546 и т.д. Надо бы кое-что поправить в БД, но пересматривать кучу таблиц, ища таблицу с нужными данными - это катастрофа. Есть ли каки-нибудь средства в MySQL (может где-нибудь находятся коменнтарии к таблицам или еще какие фишки), чтобы не лопатя все таблицы, найти нужную в короткие сроки. Извините если сумбурно задан вопрос.
Отправлен: 12.04.2007, 15:34
Вопрос задал: NatalyaDen (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Igor_
Здравствуйте, NatalyaDen!
Можно извлечь метаданные БД в скрипт. Там будут как определения таблиц так и их описания, а также описания полей.
Правда, я не уверен, что в такой "хорошей" БД вообще есть какие-то комментрии к таблицам.
И просто в текстовом файле уже искать нужные данные - можно будет увидеть в какой таблице что находится..
Еще можно попробовать сделать Revers Engeneering.
Как-то (уже довольно давно) делал Revers Engeneering с помощью программы "PowerDesigner 9".
На вход даешь БД и по ней строится диаграмма взаимосвязи таблиц друг с другом, возможно это поможет.
Ответ отправил: Igor_ (статус: 1-ый класс)
Ответ отправлен: 12.04.2007, 15:54 Оценка за ответ: 4 Комментарий оценки: Дааа, комментариев к таблицам действительно никаких. А диаграммы связи таблиц мона попробовать. Спасибо!
Отвечает: Проходящий Мимо
Здравствуйте, NatalyaDen!
Есть хорошая программа IBExpert, бесплатная для ex-USSR, которая работает также с базами MySQL.
http://www.hk-software.net/ibexpert.com/content/doc_122943-0-0-00.php
Пункт меню ИнструментыHTML-документация позволяет выгрузить коментарии ко всем метаданым в формат HTM. Если эти коментарии, конечно, присутствуют, что остается на совести разработчиков.
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 8-ой класс)
Ответ отправлен: 12.04.2007, 16:12 Оценка за ответ: 4 Комментарий оценки: Комментарии уже попробовала вытащить, их там просто нет. Что делать - не знаю. Спасибо за совет.
Отвечает: Евгений Крюков
Здравствуйте, NatalyaDen!
Вытаскивание схемы не поможет, если таблицы не связаны внешними ключами, ибо тот же Power Designer ориентируется в случае отсутствия ключей ориентируется по совпадающим названиям полей. Впрочем попробовать можно. Но более эффективный и быстрый способ при наличии исходников клиента рыться именно там. Еще можно отследить по наличию измененных записей (или просто собрать статистику по количеству строк и мониторить изменения).
Ответ отправил: Евгений Крюков (статус: Практикант)
Ответ отправлен: 12.04.2007, 21:03 Оценка за ответ: 5 Комментарий оценки: Мы немного разбираем эту кучу. И там всяких таблиц полно, некоторые связаны, некоторые нет, в общем полная ..па. И исходников, к сожалению, нет.
Вопрос № 82.383
Добрый день уважаемые эксперты.
Подскажите в чем проблема
Пишу запрос select * from Raschet where cod="test-test" или select * from Raschet where (cod="123-123")
Выдается ошибка Overflow occurred during data type conversion. conversion error from string "test-test".
Отвечает: Андрей Тимофеев
Здравствуйте, Алексеев Александр Владимирович!
Попробуйте так:
Приложение:
Ответ отправил: Андрей Тимофеев (статус: 2-ой класс)
Ответ отправлен: 13.04.2007, 13:44 Оценка за ответ: 4 Комментарий оценки: нет. так тоже самое. уже пробовал.
Отвечает: PaVeL_Ekt
Здравствуйте, Алексеев Александр Владимирович!
Попробуй так
select * from Raschet where cod like ('test-test')
Должно пойти.
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: Студент)
Ответ отправлен: 13.04.2007, 13:44 Оценка за ответ: 5 Комментарий оценки: Спасибо. мысль дельная.
Отвечает: Игорь Елизаров
Здравствуйте, Алексеев Александр Владимирович!
Это происходит из-за знака минус, который встречается в тексте запроса.
Запрос его интерпретирует как математический знак и пытается выполнить соответствующую операцию
попробуйте сделать следующее
вариант 1
условие отбора занесите в переменную
%var1 = "test-test"
сам запрос from Raschet where cod= %var1
другой вариант - использовать вместо минуса в запросе замещающий символ
что-то вроде test?test (символы замены могут быть разные в разных версиях SQL)
--------- Пользователь - тоже человек..
Ответ отправил: Игорь Елизаров (статус: 10-ый класс)
Ответ отправлен: 13.04.2007, 14:49 Оценка за ответ: 5 Комментарий оценки: Спасибо. буду пробовать.
Отвечает: Чинга
Здравствуйте, Алексеев Александр Владимирович!
Во первых вам надо для начало в запрос ввоодить только строковые или же цифровые данные. Лучше сравнивать с перменной приведя ее к типа потем settyoe($var, 'integer');
settype($var, 'string'); У вас е сравнение мускуль понимает,к ак арифметическое действие. если принципиально именно так, то через LIKE ('%test-test%')
Ответ отправил: Чинга (статус: 1-ый класс)
Ответ отправлен: 13.04.2007, 23:26