Линкфилд
Здесь может быть ваша реклама
|

 Часть III. Справочник
Часть III. Справочник

В этой части приводится справочная информация по всем API и утилитам, упоминаемым в книге.

Глава №15.

Справочник по SQL

MySQL SQL

ALTER/MODIFY

ALTER [IGNORE] TABLE table ADD [COLUMN] create_clause

ALTER [IGNORE] TABLE table ADD INDEX [name] (column, . . .)

ALTER [IGNORE] TABLE table ADD UNIQUE [name] (column, . . .)

ALTER [IGNORE] TABLE table ALTER [COLUMN] column SET DEFAULT value

ALTER [IGNORE] TABLE table ALTER [COLUMN] column DROP DEFAULT

ALTER [IGNORE] TABLE table CHANGE [COLUMN] column create..clause

ALTER [IGNORE] TABLE table DROP [COLUMN] column

ALTER [IGNORE] TABLE table DROP FOREIGN KEY key

ALTER [IGNORE] TABLE table DROP INDEX key

ALTER [IGNORE] TABLE table DROP PRIMARY KEY

ALTER [IGNORE] TABLE table MODIFY [COLUMN] create_clause

ALTER [IGNORE] TABLE table RENAME [AS] new_name

Оператор ALTER охватывает широкий набор действий, которые изменяют структуру таблицы. Этот оператор используется для добавления, изменения или удаления столбцов существующей таблицы, а также для удаления индексов. Несколько операторов ALTER могут быть объединены в одно предложение с помощью запятых:

ALTER TABLE mytable DROP myoldcolumn, ADD mynewcolumn INT

Для модификации таблицы MySQL создает копию таблицы и изменяет ее, выполняя все модифицирующие запросы. Когда все изменения сделаны, старая таблица удаляется, а ее место занимает новая таблица. В этой точке выполняются все поставленные в очередь запросы. В целях безопасности, если какой-либо из запросов создает дублирующие ключи, которые должны быть уникальными, предложение ALTER откатывается и отменяется. Если в предложении присутствует ключевое слово IGNORE, дублированные уникальные ключи игнорируются, и запрос ALTER исполняется как обычно. Имейте в виду, что использование IGNORE для активной таблицы с уникальными ключами может привести к искажению и порче таблицы.

Как указывалось выше, есть несколько разных, зачастую противоположных действий, выполняемых ALTER:

ADD [COLUMN] create,clause

Добавляет новый столбец в таблицу. Выражение create_clause имеет тот же вид, что и используемое в операторе CREATE (см. ниже). Таблица должна существовать и не иметь столбца с тем же именем, что у добавляемого столбца. (Ключевое слово COLUMN необязательно и не имеет эффекта.)

ADD INDEX [ name] (column , ...)

Создает индекс из указанных столбцов. В индексе могут быть скомбинированы до 15 столбцов. Указывать имя для индекса необязательно. Если не задано имя, индекс будет назван по имени первого столбца в списке (с числовым суффиксом _2, _3 и т. д., если это необходимо для уникальности).

ADD UNIQUE [name] (column, ...)

Идентично ADD INDEX за исключением того, что индексированные поля гарантированно уникальны. То есть, если пользователь попытается добавить значение, уже существующее в уникальном индексе, будет выдано сообщение об ошибке.

ALTER [COLUMN] column SET DEFAULT value

ALTER [COLUMN] column DROP DEFAULT

Создает, изменяет или удаляет значение по умолчанию для столбца. Если используется фраза SET DEFAULT , значение по умолчанию для указанного столбца изменяется на новое (даже если до этого не существовало значений по умолчанию). При использовании DROP DEFAULT, существующее значение по умолчанию удаляется. При этом любые существующие записи, созданные с помощью этого значения, остаются неизмененными. (Ключевое слово COLUMN необязательно и не имеет эффекта.)

CHANGE [COLUMN] new_column_name create_clause

MODIFY [COLUMN] create__clause

Изменяет определение столбца. Предложение используется для изменения типа данных столбца с минимально возможным воздействием на данные. Выражение create_clause то же, что и в операторе CREATE. Оно включает имя столбца и поэтому, используя это предложение, вы изменяете имя столбца. (Например, ALTER TABLE mytable CHANGE name newname CHAR(30) .) Предложение MODIFY аналогично CHANGE, но новый столбец имеет то же имя, что и старый. Ключевое слово COLUMN необязательно и не имеет эффекта. Следующие преобразования типов данных выполняются автоматически:

Целых чисел к числам с плавающей запятой, и наоборот (например, BIGINT к DOUBLE).

Меньших числовых значений к большим (например, INTEGER к BIGINT).

Больших числовых значений к меньшим (например, DOUBLE к FLOAT). Если значение выходит за пределы нового типа, используется максимально возможное значение нового типа данных (или наименьшее из отрицательных).

  • Числовых к текстовым (например, SMALLINT к CHAR(5)).
  • Текстовых к числовым (например, VARCHAR к MEDIUMINT). Текст преобразуется либо в целое число, либо в число с плавающей запятой. (Что более подходит для нового типа.)
  • Меньших символьных типов к большим (например, BLOB к LONG-TEXT).
  • Больших символьных типов к меньшим (например, TEXT к VARCHAR (255) ). Если значение больше, чем позволяет новый тип данных, текст усекается для соответствия этому типу.
  • Даже для преобразований, которые здесь не упомянуты (например, TIMESTAMP к YEAR), MySQL попытается сделать все возможное, чтобы совершить разумное преобразование. При использовании CHANGE преобразование будет выполнено в любом случае, ни при каких обстоятельствах MySQL не сдастся и не выдаст сообщения об ошибке. Помня об этом, вы должны (1) сделать резервную копию данных перед преобразованием и (2) немедленно проверить новые значения на «разумность».

DROP [COLUMN] column

Удаляет столбец из таблицы. Это предложение удалит из таблицы столбец и все его содержимое. Единственный способ восстановить данные, уничтоженные таким способом, - использовать резервную копию. Все ссылки в индексах на этот столбец будут удалены. Все индексы, где этот столбец был единственным, будут также уничтожены. (Ключевое слово COLUMN необязательно и не имеет эффекта.)

DROP INDEX key

Удаляет индекс из таблицы. Это предложение полностью сотрет индеке из таблицы. Предложение не затронет данные самой таблицы, только данные индекса. Поэтому индекс, удаленный таким способом, может быть воссоздан с помощью оператора ALTER TABLE ... ADD INDEX.

DROP PRIMARY KEY

Аналог DROP INDEX . Ищет специальный индекс, называемый первичным ключом (Primary Key). Если в таблице первичный ключ не найден, будет удален первый уникальный индекс.

RENAME [AS] new_table

Изменяет имя таблицы. Эта операция не влияет на данные или индексы внутри таблицы. Если предложение применяется одно, без других ALTER TABLE операторов, MySQL не создает временную таблицу, как в случае других операторов, а просто выполняет быстрое переименование табличных файлов на уровне Unix.

Операция FOREIGN KEY (внешний ключ) в настоящий момент не поддерживается в MySQL. Хотя синтаксис команды описан, никаких действий с внешним ключом произвести не удастся.

Чтобы применить любое из действий ALTER TABLE , у вас должны быть права SELECT, INSERT, DELETE, UPDATE, CREATE и DROP на изменяемую табли-ЦУ.

Примеры

# Добавить поле 'address2' к таблице 'people' и. задать ему тип данных

# 'VARCHAR' с максимальной длиной 200 символов.

ALTER TABLE people ADD COLUMN address2 VARCHAR(100)

# Добавить два новых индекса к таблице 'hr', обычный индекс для поля

# 'salary'

# и уникальный индекс для поля 'id'. Также продолжить выполнение, если

# найдены

# дублируемые значения при создании индекса 'id_idx' (очень опасно!).

ALTER TABLE hr ADD INDEX salary_idx ( salary )

ALTER IGNORE TABLE hr ADD UNIQUE id_idx ( id )

# Изменить значение по умолчанию для поля 'price' в таблице 'sprockets'

# на $19.95.

ALTER TABLE sprockets ALTER price SET DEFAULT '$19.95'

# Удалить значение по умолчанию для поля 'middle_name' в таблице 'names'.

ALTER TABLE names ALTER middle_name DROP DEFAULT

# Изменить тип данных для поля 'profits' с начального значения (которым,

# возможно, было INTEGER) на BIGINT.

ALTER TABLE finanaces CHANGE COLUMN profits profits BIGINT

# Удалить поле 'secret_stuff' из таблицы 'not_private_anymore'

ALTER TABLE not_private_anymore DROP secret_stuff

# удалить индекс с именем 'id_index' также как и первичный ключ

# из таблицы 'cars'.

ALTER TABLE cars DROP INDEX id_index, DROP PRIMARY KEY

# Переименовать таблицу 'rates_current' на 'rates_1997'

ALTER TABLE rates_current RENAME AS rates_1997

CREATE

CREATE DATABASE dbname

CREATE TABLE name ( field_name field__type, ... )

CREATE INDEX name ON table ( column, ...)

CREATE FUNCTION name RETURNS values SONAME library

Создает новые элементы базы данных (или полностью новую базу). Предложение используется для создания баз данных, таблиц и функций, определяемых пользователем (UDFs).

Команда CREATE INDEX поддерживается для совместимости с другими реализациями SQL. В старых версиях SQL эта команда ничего не выполняла. В версии 3.22 это предложение эквивалентно ALTER TABLE ADD INDEX. Чтобы выполнить CREATE INDEX , вы должны иметь право INDEX для этой таблицы.

CREATE DATABASE создает полностью пустую базу данных. Это эквивалент утилите mysqladmin . Так же как и при запуске mysqladmin, вы должны иметь права администратора MySQL (обычно root или mysql) для выполнения этой команды.

CREATE FUNCTION позволяет предложениям MySQL получать доступ к прекомпилированным выполняемым функциям. Эти функции могут выполнять практически любые операции, так как они проектируются пользователем. Возвращаемое значение может быть STRING для символьных данных; REAL для чисел с плавающей запятой или INTEGER для целых чисел. MySQL преобразует возвращаемое значение С-функций к указанному типу. Библиотека, содержащая функцию, должна быть стандартной разделяемой библиотекой, которую MySQL может динамически присоединить к серверу.

CREATE TABLE определяет структуру таблицы в базе данных. Этим оператором создаются все таблицы MySQL. Предложение состоит из имени таблицы, за которым идет любое количество определений полей. Синтаксис определения полей включает в себя имя поля, за ним его тип, за ним любой модификатор (например: name char(30) not null ). MySQL поддерживает следующие типы данных, представленные в таблице 15-1.

Таблица 15-1. Типы данных

     
 

Тип

Размер (в байтах)

Комментарии

 
 

TINYIN'I ( length)/ INT1( length)

1

Целое с диапазоном значений от 0 до 255 без знака и от -128 до 127 со знаком.

 
 

SMALLINT ( length)/

2

Целое с диапазоном значений от

 
 

INT2( length)


0 до 65535 без знака и от -32768 до 32767 со знаком.

 
 

MEDIUMINT ( length)/

3

Целое с диапазоном значений от

 
 

INT3( length)/


0 до 16777215 без знака и от

 
 

MIDDLEINT ( length)


-8388608 до 8388607 со знаком.

 
 

INT (length)/

4

Целое с диапазоном значений от

 
 

INTEGER ( length)/


0 до 4294967295 без знака и от

 
 

INT4( length)


-2147483648 до 8388607 со знаком.

 
 

BIGINT (length)/

8

Целое с диапазоном значений от

 
 

INT8( length)


0 до 184467447370955165 без зна-

 
 



ка и от -9223372036854775808

 
 



до 9223372036854775807 со зна-

 
 



ком.

 
 

FLOAT/FLOAT (4)/ FLOAT

4

Число с плавающей запятой

 
 

(length, decimal )/ FLO-


с максимальным значением

 
 

AT4( length, decimal )


+/-3.402823466Е38 и минималь-

 
 



ным (не нулевым) значением

 
 



+/-1.175494351Е-38.

 
 

DOUBLEPRECISION

8

Число с плавающей запятой

 
 

(length, decimal )/


с максимальным значением

 
 

DOUBLE ( length, decimal )/


+/-1.7976931348623157Е308 и

 
 

REAL (length, decimal )/


минимальным (не нулевым) значе-

 
 

FLOAT8( length, decimal )/


нием +/-2.2250738585072014Е-308.

 
 

FLOAT (8)



 
 

DECIMAL ( length, decimal )/

length

Число с плавающей запятой с ди-

 
 

NUMERIC ( length, decimal )


апазоном значений как у типа DOUBLE, которое хранится как поле CHAR . DECIMAL и NUMERIC всегда расцениваются как поля CHAR , которые содержат цифровое значение.

 
 

TIMESTAMP (length)

4

Значение timestamp, которое обновляется каждый раз, когда изменяется запись. Также можно приписать значение вручную. При приписывании значения NULL в поле запишется текущее время. Поле длины (необязательное) определяет внешний формат записи. Длина 14 (значение по умолчанию) выводит строку типа ' YYYYMMDDHHMMSS' , 12 flacT'YYMMDDHHMMSS',' 8- 'YYYYMMDD', и 6 выдаст 'YYMMDD'.

 
     
     
 

DATE

3

Значение даты, которое хранит год, месяц и день. Значения всегда выводятся в формате 'YYYY-MM-DD', но могут быть введены в любом из следующих форматов: 'YY-MM-DD', 'YYYY-MM-DD', 'YYMMDD' или 'YYYYMMDDHHMMSS' (часть, хранящая время, игнорируется).

 
 

TIME

3

Значение времени, хранящее часы, минуты и секунды. Значения всегда выводятся в формате 'НН: MM: SS', но могут быть введены в любом из следующих форматов: 'НН: MM: SS', 'HHMMSS', 'ННММ' (секунды равны '00'), или 'НН' (минуты и секунды обнуляются).

 
 

DATETIME

8

Сохраняет и дату и время. Значения вводятся и выводятся в формате 'YYYY-MM-DD HH: MM: SS'.

 
 

YEAR

1

Значение, сохраняющее год. Может быть введено либо в формате 'YYYY', либо 'YY', будет выведено либо как двухзначный, либо как четырехзначный год, в зависимости от формата ввода. Двухзначный год может находиться в диапазоне между 1970 и 2069 включительно. Этот тип данных в настоящее время поддерживает года с 1901 по 2155.

 
 

CHAR (length) /ШЬЮ (length-)

length

Строка фиксированной длины. Любой текст меньшей длины будет дополнен пробелами в конце строки. Все конечные пробелы, вставленные либо MySQL, либо пользователем, удаляются при выводе значения. MySQL по умолчанию считает текст не чувствительным к регистру (см. модификатор BINARY ниже). Тип BINARY эквивалентен CHAR с модификатором BINARY .

 
     
 

CHAR (length) VARYING/ VARCHAR (length)/ VARBINARY ( length)

length

Текстовая строка переменной длины (нечувствительная к регистру) с установленной максимальной длиной. Максимальная длина должна лежать в диапазоне между 1 и 255 символами. Все концевые пробелы удаляются при сохранении данных этого типа. Тип VARBINARY эквивалентен VARCHAR с BINARY модификатором.

 
 

TINYTEXT

length+1

Текстовое поле (нечувствительно к регистру) с максимальной длиной в 255 символов.

 
 

TINYBLOB

length+1

Двоичное поле (чувствительно к регистру) с максимальной длиной в 255 символов. Двоичные данные чувствительны к регистру.

 
 

TEXT/LONG VARCHAR

length+2

Текстовое поле с максимальной длиной в 64 Кбайт текста.

 
 

BLOB/LONG VARBINARY

length+2

Двоичное поле с максимальным размером в 64 Кбайт данных.

 
 

MEDIUMTEXT

length+3

Текстовое поле с максимальной длиной в 16 Мбайт текста.

 
 

MEDIUMBLOB

length+3

Двоичное поле с максимальным размером в 16 Мбайт данных.

 
 

LONGTEXT

length+4

Текстовое поле с максимальной длиной в 4 Гбайт текста.

 
 

LONGBLOB

length+4

Двоичное поле с максимальным размером в 4 Гбайт данных.

 
 

ENUM

1,2

Поле, которое может содержать одно значение из предварительно заданного набора (например ENUM ("apples", "oranges", "bananas")). Данные могут быть введены как одно из текстовых значений набора либо как число, соответствующее одному из элементов набора (номер первого элемента 1). В поле всегда может быть внесено значение NULL. Набор (коллекция) может содержать до 65535 разных элементов. Если в наборе меньше 256 элементов, поле займет только один байт (иначе его размер равен двум байтам).

 
     
 

SET

1—8

Поле может содержать любое количество предварительно заданных значений (например SET ("rock," "pop," "country," "western")). Данные могут быть заданы как список разделенных запятыми значений либо как двоичное битовое представление значений (например 12, т. е. 1100 в двоичном виде, относится к "country, western" в предыдущем примере). В одном наборе может быть до 64 элементов.

 

В дополнение к основным типам могут использоваться некоторые модификаторы.

decimal

Максимальное количество цифр справа от запятой в числе с плавающей запятой. Любое значение с более длинной дробной частью будет округлено. Например, для поля price FLOAT(5,2) значение 4.34 будет показано как 4.34, значение 234.27 будет показано как 234.3 (для соответствия общей максимальной длине), значение 3.331 будет выглядеть как 3.33 (для соответствия максимальной длине дробной части).

length

Количество символов для числовых значений, показываемое пользователю. Включает десятичные запятые, знаки и индикаторы экспонент. Например, поле peanuts INT(4) имеет допустимый диапазон от -999 до 9999. MySQL сохранит значение, выходящие за пределы заданного диапазона, пока оно не выйдет за пределы максимального размера для своего типа. Если вы сохраните значение вне заданного диапазона, MySQL выдаст предупреждение, но будет функционировать нормально.

При использовании с типом TIMESTAMP модификатор length определяет формат, используемый для timestamp.

При использовании с символьными (текстовыми) типами length определяет количество символов. Для символьных типов с фиксированной длиной length это точное число символов, используемое для хранения данных. Для текстовых типов с переменной длиной length это максимально возможная длина строки.

Атрибут length является необязательным для всех типов, кроме DECIMAL/NUMERIC , CHAR и VARCHAR .

Поскольку тип DECIMAL/NUMERIC хранится как символьная строка, он ограничен максимальной длиной точно так же, как и поле CHAR. Поэтому ввод чисел больше указанного диапазона вызовет такую же ошибку, что и при вводе слишком длинной строки в поле CHAR.

precision

Этот атрибут доступен для типа FLOAT в целях совместимости с системой ODBC. Значение этого атрибута, равное 4, указывает на обычное вещественное число (то же, что и FLOAT без атрибута точности), а значение 8 определяет число с плавающей запятой двойной точности (то же, что поле DOUBLE).

AUTO_INCREMENT

Атрибут позволяет автоматически обновлять числовое поле. Это удобно для создания уникальных идентификаторов для записей в таблице. Данные могут быть записаны и прочитаны из такого поля, как из обычного, но при вводе значения NULL или 0 существующее значение автоматически увеличивается на единицу. Текущее значение поля AUTO_INCREMENT может быть получено с помощью функции LAST_INSERT_ID (см. SELECT ниже).

BINARY

Атрибут используется с типами CHAR и VARCHAR- для указания на двоичные данные в текстовой строке. Единственным эффектом этого атрибута будет чувствительность к регистру при сортировке данных. По умолчанию MySQL игнорирует регистр при сортировке текста.

DEFAULT value

Атрибут приписывает полю значение по умолчанию. Это значение будет присвоено полю в случае, если во вводимой в таблицу записи это поле пустое. Если значение по умолчанию не определено и нет ограничения NOT NULL , то будет записано значение NULL. В случае NOT NULL MySQL запишет значение на основе типа поля.

NOT NULL

Этот атрибут гарантирует, что каждая запись в столбце будет иметь какое-либо, отличное от NULL, значение. Попытка вставить в такое поле значение NULL вызовет ошибку.

NULL

Атрибут указывает на допустимость значения NULL. Это атрибут по умолчанию в случае, если никакой атрибут не указан. Поля, входящие в состав индекса, не могут иметь атрибут NULL. (Он будет проигнорирован, даже если он указан.)

PRIMARY KEY

Атрибут автоматически делает поле первичным ключом таблицы. Таблица может иметь только один первичный ключ (см. ниже). Любое поле, являющееся первичным ключом, должно иметь атрибут NOT NULL.

REFERENCES table [(column, . . . )] [MATCH FULL | MATCH PARTIAL] [ON

DELETE option] [ON UPDATE option]

Атрибут в настоящее время не имеет эффекта. MySQL понимает полный синтаксис команды, но не обрабатывает ее. Этот модификатор поля поддерживается для облегчения импорта SQL из разных источников. Возможно также, что следующая версия MySQL будет полностью поддерживать эту функцию.

UNSIGNED

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

ZEROFILL

Атрибут используется с целочисленными типами для добавления нулей перед числом, пока не будет достигнута длина, максимальная для типа. Например, поле counter INT(5) ZEROFILL покажет число 132 как 00132.

Indexes

MySQL поддерживает концепцию индексирования таблиц, как описано в главе 2, «Проектирование баз данных». Индексы создаются посредством особых «типов», включенных в определение таблицы.

KEY/INDEX [name] (column, [column2, . . . ])

Создает обычный индекс для всех столбцов с именами. (KEY и INDEX в этом контексте будут синонимами.) Индексу может быть дано имя (не обязательно). Если имя не указано, будет приписано имя, основанное на имени первого столбца, и, если это необходимо для поддержания уникальности, к имени будет добавлена цифра. Если в индекс входит более одного столбца, то все столбцы слева будут объединены в подгруппы и проиндексированы. Обратите внимание на следующее определение индекса: INDEX idxl ( name, rank, serial );

При создании этого индекса будут проиндексированы следующие группы столбцов:

  • name, rank, serial
  • name, rank name

PRIMARY KEY

Создает первичный ключ. Первичный ключ — это особый ключ, который может быть только один для каждой таблицы. По сути, первичный ключ- это уникальный (UNIQUE) ключ с именем «PRIMARY». Несмотря на привилегированный статус, он функционирует как любой другой уникальный ключ.

UNIQUE [nаmе] (column, [column2, . , . ])

Создает особый индекс, все входящие значения которого должны быть уникальными (и соответственно они уникальны в индексированных полях). Попытка ввести существующее значение в уникальный индекс вызовет ошибку. Следующая команда создает уникальный индекс поля «nicknames»:

UNIQUE (nicknames);

В существующей реализации индексирования в MySQL значение NULL не допускается ни в одном из полей, входящих в индекс.

При индексировании текстовых полей (CHAR, VARCHAR и их синонимы) возможно индексирование только первой части всего поля. Например, следующая команда создаст индекс числового поля 'id' вместе с первыми 20 символами текстового поля 'address':

INDEX adds ( id, address(20) );

При выполнении любого поиска в поле 'address' для сравнения будут использованы только первые 20 символов до тех пор, пока не встретится более одного совпадения. Поэтому можно получить большой выигрыш в производительности, если использовать для индексирования только некоторое количество символов текстового поля, которые, по вашему мнению, дадут уникальные значения.

Поля, входящие в индекс, должны быть определены с атрибутом NOT NULL (см. выше). При создании индекса отдельной командой MySQL сгенерирует ошибку, если NOT NULL не указан. Однако при определении первичного ключа добавлением атрибута PRIMARY KEY к описанию таблицы, атрибут NOT NULL будет добавлен автоматически (без предупреждения), если он не указан явно.

В добавление к описанным выше MySQL содержит следующие специальные «типы»:

  • FOREIGN KEY ( name (column, [column2, . . . ])
  • CHECK

Эти ключевые слова не выполняют никаких действий. Они существуют для более легкого чтения SQL-кода, экспортированного из других баз данных. Также некоторая отсутствующая пока функциональность может быть добавлена в следующие версии MySQL.

У вас должны быть право CREATE для базы данных, где используется предложение CREATE TABLE .

Примеры

# Создать новую пустую базу данных 'employees'

CREATE DATABASE employees;

# Создать простую таблицу

CREATE TABLE empjata ( id INT, name CHAR(50) );

# Создать функцию make_coffee (которая хранится в библиотеке myfuncs.so

# и возвращает строковое значение).

CREATE FUNCTION make_coffee RETURNS string SONAME "myfuncs.so";

DELETE

DELETE FROM table [WHERE clause]

Удаляет запись из таблицы. При использовании без предложения WHERE будет полностью удалена вся таблица, а затем будет создана новая пустая таблица. С использованием WHERE будут удалены записи, отвечающие условиям выражения. Предложение DELETE возвращает пользователю количество удаленных записей.

Как сказано выше, при использовании без выражения WHERE, будет удалена вся таблица. Этот эффективный метод значительно быстрее, чем удаление каждой записи по отдельности. При использовании этого метода MySQL вернет пользователю значение 0, так как нет способа узнать количество удаленных записей. В существующей реализации этот метод просто удаляет все файлы, относящиеся к таблице, кроме файла с ее определением. Поэтому этот метод удобен для обнуления таблиц с серьезно поврежденными данными (которые невозможно восстановить). Вы потеряете данные, но структура таблицы будет сохранена.<

 
MKPortal©2003-2008 mkportal.it
MultiBoard ©2007-2009 RusMKPortal