Главная Свежие Последние Лучшие Контактная информация  
 
 

Поиск: INCREMENT (37)


Проблемы и распространенные ошибки » Проблемы со значением 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
 


Интерфейсы для MySQL » Как получить уникальный идентификатор для последней внесенной строки?
8.4.6.3 Как получить уникальный идентификатор для последней внесенной строки?

При внесении записи в таблицу, содержащую столбец с атрибутом AUTO_INCREMENT, последний сгенерированный идентификатор можно получить, вызвав функцию mysql_insert_id().

Для извлечения этого id можно также использовать функцию LAST_INSERT_ID() в строке запроса, передаваемой в mysql_query().
теги: NULL, INSERT
 


Интерфейсы для MySQL » Какие результаты можно получить из запроса?
8.4.6.2 Какие результаты можно получить из запроса?
В дополнение к возвращенному запросом результирующему набору данных можно также получить следующую информацию:

Функция mysql_affected_rows() возвращает количество строк, подвергшихся воздействию во время последнего запроса при выполнении INSERT, UPDATE или DELETE. Исключение составляет случай использования команды DELETE без выражения WHERE, когда таблица воссоздается как пустая, а это намного быстрее!
теги: INSERT, UPDATE, DELETE
 


Интерфейсы для MySQL » mysql_insert_id()
8.4.3.126 mysql_insert_id()

my_ulonglong mysql_insert_id(MYSQL *mysql)

8.4.3.127 Описание
Возвращает идентификатор ID, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом. Эту функцию следует использовать после выполнения запроса INSERT в таблице, содержащей поле AUTO_INCREMENT.
теги: UPDATE
 


Интерфейсы для MySQL » Обзор функций интерфейса C
8.4.2 Обзор функций интерфейса C

В приведенной ниже таблице перечислены доступные в интерфейсе C функции. Более детально они описаны в следующем разделе (see section 8.4.3 Описание функций интерфейса C). Функция Описание
mysql_affected_rows() Возвращает количество строк, измененных/удаленных/вставленных последним запросом UPDATE, DELETE или INSERT.
mysql_change_user() Переключает пользователя и базу данных для открытого соединения.
теги: mysql, DATABASE
 


Интерфейсы для MySQL » Типы данных C API
8.4.1 Типы данных C API
MYSQL
Данная структура представляет дескриптор соединения с базой данных. Используется почти во всех функциях MySQL.
MYSQL_RES
Эта структура содержит результат запроса, возвратившего строки (SELECT, SHOW, DESCRIBE, EXPLAIN). Возвращенная из запроса информация далее в этом разделе называется результирующим набором данных.
MYSQL_ROW
Является ``типобезопасным'' представлением данных одной строки. В настоящее время этот тип реализован как массив строк с фиксированным количеством байтов (их нельзя трактовать как строки с нулевым символом в конце, если величины полей могут содержать двоичные данные, поскольку они могут содержать ноль байтов). Строки можно получить вызовом функции mysql_fetch_row().
MYSQL_FIELD
теги: SELECT, SHOW
 


Интерфейсы для MySQL » Как получить значение столбца AUTO_INCREMENT в ODBC
8.3.6 Как получить значение столбца AUTO_INCREMENT в ODBC

Существует распространенная проблема, заключающаяся в том, как получить значение автоматически сгенерированного ID из INSERT. С помощью ODBC можно сделать что-то наподобие следующего (предполагается, что auto представляет собой поле AUTO_INCREMENT ):

INSERT INTO foo (auto,text) VALUES(NULL,'text');
SELECT LAST_INSERT_ID();
теги: ODBC, NULL
 


Интерфейсы для MySQL » Интерфейс DBI
8.2.2 Интерфейс DBI

Унифицированные методы DBI Метод Описание
connect Создает соединение с сервером
disconnect Разрывает соединение с сервером
prepare Готовит SQL-запрос к выполнению
execute Выполняет приготовленный запрос
do Готовит и выполняет запрос
теги: DBI, NULL
 


Типы таблиц MySQL » Таблицы HEAP
7.4 Таблицы HEAP

Для HEAP-таблиц используются хэш-индексы; эти таблицы хранятся в памяти. Благодаря этому обработка их осуществляется очень быстро, однако в случае сбоя MySQL будут утрачены все данные, которые в них хранились. Тип HEAP очень хорошо подходит для временных таблиц!
теги: mysql, CREATE
 


Типы таблиц MySQL » Таблицы MERGE
7.2 Таблицы MERGE

Таблицы MERGE (объединение) являются новшеством версии MySQL 3.23.25. В настоящее время код находится еще на стадии разработки, но, тем не менее, должен быть достаточно стабилен.

Таблица MERGE (или таблица MRG_MyISAM) представляет собой совокупность идентичных таблиц MyISAM, которые могут использоваться как одна таблица. К совокупности таблиц можно применять только команды SELECT, DELETE и UPDATE. Если же попытаться применить к таблице MERGE команду DROP, она подействует только на определение MERGE.
теги: SELECT, DELETE
 


Типы таблиц MySQL » Таблицы MyISAM
7.1 Таблицы MyISAM
Тип таблиц MyISAM принят по умолчанию в MySQL версии 3.23. Он основывается на коде ISAM и обладает в сравнении с ним большим количеством полезных дополнений.

Индекс хранится в файле с расширением `.MYI' (MYIndex), а данные - в файле с расширением `.MYD' (MYData). Таблицы MyISAM можно проверять/восстанавливать при помощи утилиты myisamchk. See section 4.4.6.7 Использование myisamchk для послеаварийного восстановления. Таблицы MyISAM можно сжимать при помощи команды myisampack, после чего они будут занимать намного меньше места. See section 4.7.4 myisampack, MySQL-генератор сжатых таблиц (только для чтения).
теги: MyISAM, VARCHAR
 


Справочник по языку MySQL » Как работает кэширование запросов
6.9.1 Как работает кэширование запросов
Перед синтаксическим анализом запросы сравниваются, поэтому запросы

SELECT * FROM TABLE

и

Select * from table

для кэша запросов рассматриваются как различные, поскольку они должны быть абсолютно одинаковыми (байт в байт), чтобы рассматриваться как идентичные. Помимо этого, запрос может трактоваться как отличающийся, если, например, какой-либо клиент использует протокол соединения нового формата или иной набор символов, чем другой клиент.
теги: SELECT, DELETE
 


Справочник по языку MySQL » Полнотекстовый поиск в MySQL
6.8 Полнотекстовый поиск в MySQL
Что касается MySQL 3.23.23, то эта версия MySQL поддерживает полнотекстовый поиск и индексацию. Полнотекстовые индексы в MySQL обозначаются как индексы типа FULLTEXT. Эти индексы могут быть созданы в столбцах VARCHAR и TEXT во время создания таблицы командой CREATE TABLE или добавлены позже с помощью команд ALTER TABLE или CREATE INDEX. Загрузка больших массивов данных в таблицу будет происходить намного быстрее, если таблица не содержит индекс FULLTEXT, который затем создается командой ALTER TABLE (или CREATE INDEX). Загрузка данных в таблицу, уже имеющую индекс FULLTEXT, будет более медленной.
теги: VARCHAR, TABLE
 


Справочник по языку MySQL » Синтаксис оператора ALTER TABLE
6.5.4 Синтаксис оператора ALTER TABLE
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]

alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
или ADD [COLUMN] (create_definition, create_definition,...)
или ADD INDEX [index_name] (index_col_name,...)
или ADD PRIMARY KEY (index_col_name,...)
или ADD UNIQUE [index_name] (index_col_name,...)
или ADD FULLTEXT [index_name] (index_col_name,...)
или ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...)
теги: ADD, TABLE
 


Справочник по языку MySQL » Синтаксис оператора CREATE TABLE
6.5.3 Синтаксис оператора CREATE TABLE
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
[table_options] [select_statement]

create_definition:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
или PRIMARY KEY (index_col_name,...)
или KEY [index_name] (index_col_name,...)
или INDEX [index_name] (index_col_name,...)
или UNIQUE [INDEX] [index_name] (index_col_name,...)
или FULLTEXT [INDEX] [index_name] (index_col_name,...)
или [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
теги: CREATE, SET
 


Справочник по языку MySQL » Синтаксис оператора LOAD DATA INFILE
6.4.9 Синтаксис оператора LOAD DATA INFILE
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY '\t']
[[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\\' ]
]
[LINES TERMINATED BY '\n']
[IGNORE number LINES]
[(col_name,...)]
теги: DATA, NULL
 


Справочник по языку MySQL » Синтаксис оператора INSERT DELAYED
6.4.4 Синтаксис оператора INSERT DELAYED
INSERT DELAYED ...

Опция DELAYED для команды INSERT является специфической для MySQL возможностью, которая очень полезна, если клиент не может ждать завершения команды INSERT. Такая проблема встречается часто - она возникает, когда MySQL используется для ведения журналов (проще говоря, для логгинга) и при этом периодически запускаются команды SELECT и UPDATE, для выполнения которых требуется много времени. Оператор DELAYED был введен в версию MySQL 3.22.15. Он является расширением MySQL к ANSI SQL92.
теги: INSERT, SELECT
 


Справочник по языку MySQL » Синтаксис оператора INSERT ... SELECT
6.4.3.1 Синтаксис оператора INSERT ... SELECT
INSERT [LOW_PRIORITY] [IGNORE] [INTO] tbl_name [(column list)] SELECT ...

Команда INSERT ... SELECT обеспечивает возможность быстрого внесения большого количества строк в таблицу из одной или более таблиц.

INSERT INTO tblTemp2 (fldID) SELECT tblTemp1.fldOrder_ID
FROM tblTemp1
WHERE tblTemp1.fldOrder_ID > 100;
теги: SELECT, INSERT
 


Справочник по языку MySQL » Синтаксис оператора INSERT
6.4.3 Синтаксис оператора INSERT
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
или INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
или INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=expression, col_name=expression, ...
теги: INSERT, SELECT
 


Справочник по языку MySQL » Разные функции
6.3.6.2 Разные функции
DATABASE()
Возвращает имя текущей базы данных:
mysql> SELECT DATABASE();
-> 'test'

Если в данное время нет активной базы данных, то функция DATABASE() возвращает пустую строку.
USER()
SYSTEM_USER()
SESSION_USER()
Возвращает имя текущего активного пользователя MySQL:
mysql> SELECT USER();
-> 'davida@localhost'
теги: SELECT, mysql
 


Страницы: [ 1 ] - 2

Добавить в закладки:

 


  Категории
Общая информация 73
Установка MySQL 78
Учебное пособие по MySQL 33
Администрирование баз данных 98
Оптимизация в MySQL 41
Справочник по языку MySQL 75
Типы таблиц MySQL 55
Интерфейсы для MySQL 89
Расширение MySQL 18
Проблемы и распространенные ошибки 33
Привнесенные программы 6
Перенос на другие системы 15
 

  Теги
 

  Лучшее на сайте
Сравнение возможностей MySQL и PostgreSQL 442
Адаптивный хешированный индекс 381
Синтаксис оператора EXPLAIN (получение информации о SELECT) 330
Функции даты и времени 319
mysqlimport, импорт данных из текстовых файлов 316
Основные возможности MySQL 313
Запуск MySQL на Windows NT, 2000 или XP 305
Что представляет собой компания MySQL AB? 299
Типы данных DATETIME, DATE и TIMESTAMP 291
Использование символических ссылок для таблиц 260
 

  Друзья сайта
 

  Интересное
 

 
Использование материалов только при активной гиперссылке "http://sql-book.net"
Copyright 2008 http://sql-book.net Серия сайтов: "Стань умным!".