Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 245
от 18.04.2007, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 422, Экспертов: 65
В номере:Вопросов: 2, Ответов: 7


Вопрос № 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".

Поле COD имеет тип VarChar

Заранее благодарен Алексеев. А.В.

Отправлен: 13.04.2007, 13:28
Вопрос задал: Алексеев Александр Владимирович (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Андрей Тимофеев
Здравствуйте, Алексеев Александр Владимирович!
Попробуйте так:

Приложение:

Ответ отправил: Андрей Тимофеев (статус: 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.50 (beta) от 15.04.2007
Яндекс Rambler's Top100

В избранное