За последние 24 часа нас посетили 26845 программистов и 1483 робота. Сейчас ищут 995 программистов ...

Получение информации о типе данных поля в таблице

Тема в разделе "MySQL", создана пользователем Xavier Teodonius, 29 дек 2009.

  1. Xavier Teodonius

    Xavier Teodonius Активный пользователь

    С нами с:
    8 мар 2007
    Сообщения:
    65
    Симпатии:
    0
    Задача - выполнить проверку данных перед занесением в таблицу на соответствие максимальной длинне типа данных соответствующих полей в таблице.

    Пример - есть числа: 50, 100, 300. Нужно проверить, можно ли их поместить в поле типа TINYINT(4), и если нет, то сделать некоторое действие.

    После копания в документации нашел функцию SHOW COLUMNS. Но у нее есть много минусов для меня:
    1) возвращает не только значения о типе данных поля, а вообще всю связанную с ним информацию.
    2) данные о типе данных поля возваращаются в виде строки типа "varchar(255)", т.е. строку еще и парсить придется.

    Вопрос, как наиболее оптимально решить мою задачу? Меня интересует не готовый код, а логика и последовательность действий. Может быть есть более специфичные функции и процесс проверки можно как-то упростить? Или может быть даже готовые решения :)

    Всем спасибо, кто откликнется :)
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  3. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Вариант "тупо пихать в поле и перехватывать exception" для mysql годится? В Oracle это обычно так и делают.
     
  4. Неправда. В оракле есть вьюшки с этими данными в чистом виде. ALL_TABLES например.

    http://en.wikipedia.org/wiki/Oracle_metadata
     
  5. А, извини, я понял о чем ты. Да ты прав, это как раз более правильный подход я считаю, проверять ошибки.