Поиск: NULL (108)
| Проблемы и распространенные ошибки » Проблемы со значением NULL |
A.5.3 Проблемы со значением NULL
Концепция NULL-значения часто вводит в заблуждение новичков в SQL, которые считают, что NULL - то же, что и пустая строка "". Это ошибка! Например, следующие команды совершенно различны:
mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES (""); |
|
теги: NULL, INSERT, SELECT |
| |
| Проблемы и распространенные ошибки » Проблемы с использованием столбцов типа DATE |
A.5.2 Проблемы с использованием столбцов типа DATE
Значения типа DATE имеют формат YYYY-MM-DD; согласно стандарту ANSI SQL, никакой другой формат не допускается. Пользователь должен применять этот формат в выражениях UPDATE и в определении WHERE операторов SELECT. Например:
mysql> SELECT * FROM tbl_name WHERE date >= '1997-05-05';
Из соображений удобства MySQL автоматически преобразовывает дату в число, если дата используется в числовом контексте (и наоборот). Благодаря своей ``разумности'' MySQL допускает также ``мягкую'' строковую форму при обновлении и в определении WHERE, сравнивающем дату со столбцом типа TIMESTAMP, DATE или DATETIME ("мягкая" форма означает, что для разделения составляющих даты можно использовать любой знак пунктуации; например, 1998-08-15 и 1998#08#15 эквивалентны). MySQL может также преобразовывать в даты строки, не содержащие разделителей (наподобие 19980815), при условии, что представляемая строкой дата не лишена смысла. |
|
теги: SELECT, UPDATE |
| |
| Проблемы и распространенные ошибки » Что делать, если работа MySQL сопровождается постоянными сбоями |
A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями
Перед официальным выпуском все версии MySQL тестируются на многих платформах. Это не означает, что в MySQL совсем нет ошибок, но если они и есть, то мало, и их не так просто отыскать. В любом случае, столкнувшись с какой-либо проблемой, всегда полезно попытаться точно определить, что вызывает аварию системы, - тогда шансы, что проблема будет устранена в скором времени, станут значительно выше. |
|
теги: MySQL, TABLE |
| |
| Расширение MySQL » Добавление новых родных функции |
9.2.3 Добавление новых родных функции
В этом разделе приведена процедура добавления новой ``родной'' функции. Следует учитывать, что в бинарную поставку ``родные'' функции добавить невозможно, поскольку эта процедура требует изменения исходного кода MySQL. Поэтому необходимо собственноручно компилировать MySQL из поставки исходного текста. Кроме того, при переходе на другую версию MySQL (например, при выпуске новой версии) все изменения придется повторить для этой новой версии. |
|
теги: NULL, char |
| |
| Расширение MySQL » Возвращаемые значения и обработка ошибок |
9.2.2.4 Возвращаемые значения и обработка ошибок
Функция инициализации должна возвращать 0, если ошибок нет, и 1 в противном случае. Если происходит ошибка, xxx_init() должна поместить сообщение об ошибке с завершающим '\0' в параметр message. Сообщение будет возвращено клиенту. Буфер сообщения имеет длину MYSQL_ERRMSG_SIZE символов, но надо стараться, чтобы сообщение не превышало 80 символов - для соответствия ширине стандартного экрана терминала. |
|
теги: UDF, NULL |
| |
| Расширение MySQL » Последовательность вызова UDF для агрегатных функций |
9.2.2.2 Последовательность вызова UDF для агрегатных функций
Ниже приведено описание функций, которые необходимо определить при создании агрегатной UDF-функции.
char *xxx_reset(UDF_INIT *initid, UDF_ARGS *args,
char *is_null, char *error);
Эта функция вызывается, когда MySQL находит первую строку в новой группе. В функции необходимо сбросить все внутренние переменные, в которых накапливаются значения, и затем установить переданный аргумент как первый аргумент в группе. |
|
теги: UDF |
| |
| Расширение MySQL » Последовательность вызова UDF для простых функций |
9.2.2.1 Последовательность вызова UDF для простых функций
Главная функция должна быть определена, как это показано здесь. Обратите внимание на то, что тип возвращаемого значения и параметры варьируются в зависимости от того, как определена SQL-функция XXX() в команде CREATE FUNCTION - как возвращающая STRING, INTEGER или REAL:
Для STRING-функций:
char *xxx(UDF_INIT *initid, UDF_ARGS *args,
char *result, unsigned long *length,
char *is_null, char *error); |
|
теги: char, NULL |
| |
| Расширение MySQL » Добавление новой определяемой пользователем функции |
9.2.2 Добавление новой определяемой пользователем функции
Для того чтобы работал механизм UDF, функции должны быть написаны на C или на C++, а используемая операционная система должна поддерживать динамическую загрузку. В поставку исходного кода входит файл `sql/udf_example.cc', в котором определены пять новых функций. К этому файлу следует обращаться, если нужно узнать, как работает соглашение о вызовах UDF. |
|
теги: NULL |
| |
| Интерфейсы для MySQL » Интерфейс Borland C++ |
8.5.1 Интерфейс Borland C++
Исходный код MySQL можно скомпилировать под Windows с Borland C++ 5.02 (исходный код Windows включает в себя только проекты для Microsoft VC++, а для Borland C++ файлы проекта необходимо сделать самостоятельно).
|
|
теги: Borland, Windows |
| |
| Интерфейсы для MySQL » Пример простого встраиваемого сервера |
8.4.9.6 Пример простого встраиваемого сервера
Этот пример программы и сборочного файла должен работать без каких-либо изменений под операционными системами Linux или FreeBSD. Для других операционных систем потребуются небольшие изменения. При разработке данного примера мы ставили перед собой цель предоставить достаточно информации для понимания рассматриваемой темы и в то же время не перегружать текст руководства лишними деталями, специфическими для реального приложения. |
|
теги: MYSQL, NULL |
| |
| Интерфейсы для MySQL » Какие результаты можно получить из запроса? |
8.4.6.2 Какие результаты можно получить из запроса?
В дополнение к возвращенному запросом результирующему набору данных можно также получить следующую информацию:
Функция mysql_affected_rows() возвращает количество строк, подвергшихся воздействию во время последнего запроса при выполнении INSERT, UPDATE или DELETE. Исключение составляет случай использования команды DELETE без выражения WHERE, когда таблица воссоздается как пустая, а это намного быстрее! |
|
теги: INSERT, UPDATE, DELETE |
| |
| Интерфейсы для MySQL » mysql_server_init() |
8.4.5.1 mysql_server_init()
int mysql_server_init(int argc, char **argv, char **groups)
8.4.5.2 Описание
Данную функцию необходимо вызывать только один раз во время работы программы - перед вызовом любой другой функции MySQL. Она запускает сервер и инициализирует все подсистемы (mysys, InnoDB и т.д.), используемые сервером. Без вызова этой функции произойдет аварийное завершение данной программы. При использовании пакета DBUG, поставляемого вместе с MySQL, данную функцию следует вызывать после функции MY_INIT(). |
|
теги: NULL |
| |
| Интерфейсы для MySQL » mysql_use_result() |
8.4.3.217 mysql_use_result()
MYSQL_RES *mysql_use_result(MYSQL *mysql)
8.4.3.218 Описание
Функцию mysql_store_result() или mysql_use_result() необходимо вызывать после каждого выполненного запроса, извлекающего данные (SELECT, SHOW, DESCRIBE, EXPLAIN).
Функция mysql_use_result() инициализирует извлечение результирующего набора, но фактически не производит чтение в клиенте подобно тому, как это делает функция mysql_store_result(). |
|
теги: NULL, SERVER |
| |
| Интерфейсы для MySQL » mysql_store_result() |
8.4.3.209 mysql_store_result()
MYSQL_RES *mysql_store_result(MYSQL *mysql)
8.4.3.210 Описание
Функцию mysql_store_result() или mysql_use_result() необходимо вызывать после каждого выполненного запроса, извлекающего данные (SELECT, SHOW, DESCRIBE, EXPLAIN). |
|
теги: mysql, SERVER |
| |
| Интерфейсы для MySQL » mysql_stat() |
8.4.3.205 mysql_stat()
char *mysql_stat(MYSQL *mysql)
8.4.3.206 Описание
Возвращает символьную строку, содержащую информацию, подобную предоставляемой командой mysqladmin status. Информация включает в себя время работы сервера в секундах, а также количество запущенных потоков, запросов, перегрузок и открытых таблиц. |
|
теги: NULL, SERVER |
| |
| Интерфейсы для MySQL » mysql_real_connect() |
8.4.3.171 mysql_real_connect()
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int client_flag)
8.4.3.172 Описание
Функция mysql_real_connect() пытается установить соединение с сервером баз данных MySQL, работающим на хосте host. До успешного завершения функции mysql_real_connect() нельзя выполнять никакие другие функции интерфейса, за исключением mysql_get_client_info(). |
|
теги: NULL |
| |
| Интерфейсы для MySQL » mysql_options() |
8.4.3.159 mysql_options()
int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)
8.4.3.160 Описание
Может использоваться для установки дополнительных опций соединения и влияет на режим работы соединения. Эта функция может вызываться многократно для установки нескольких опций. |
|
теги: mysql, CONNECT |
| |
| Интерфейсы для MySQL » mysql_num_fields() |
8.4.3.150 mysql_num_fields()
unsigned int mysql_num_fields(MYSQL_RES *result)
или
unsigned int mysql_num_fields(MYSQL *mysql)
Вторая форма не работает на версии MySQL 3.22.24 или более новой. Вместо аргумента в параметре MYSQL* необходимо использовать выражение unsigned int mysql_field_count(MYSQL *mysql) |
|
теги: mysql |
| |
Страницы: [ 1 ] - 2 - 3 - 4 - 5 - 6
|
|