Программирование >>  Программный интерфейс приложений 

1 ... 211 212 213 [ 214 ] 215 216 217 ... 264


UPDATE

UPDATE [LOW PRIORITy] tbl name

SET col name=expr [, col name=expr ] ... [WHERE where expr] [LIMIT n]

Изменяет содержимое строк таблицы tblname. Изменению подлежат строки, выделенные с помощью определенного в предложении where выражения. В этих строках значение столбцов, перечисленных в предложении set, устанавливается равным определенному выражению ехрг.

UPDATE me.Tiber SET expiration = NULL, phone = 197-602-4832 WHERE member id = 14

Если предложение where не определено, изменяются все строки таблицьг

По заверщении выполнения оператор update возвращает число обновленных строк. Строка, однако, считается обновленной, если значение столбца действительно изменилось. Установка в столбце значения, аналогичного текущему, не приводит к изменению строки. Если пользователю действительно необходимо знать, сколько строк соответствовало определенным в предложении where условиям, независимо от обновления строки оператором update, установите при подключении к серверу флаг client found rows. Более детально об этом рассказывается в описании функции mysql real connect () в приложении Е, Программный интерфейс приложений С .

При установке ключевого слова low priority оператор не выполняется до тех лор, пока все клиенты не перестанут читать таблицу. Это ключевое слово впервые появилось в MySQL версии 3.22.5.

Значение п предложения limit определяет максимальное число строк, которые будут обновлены. Предложение limit впервые появилось в MySQL версии 3.23.3.

USE dbname

Устанавливает базу данных dbname в качестве текущей (эта база данных по умолчанию выбирается для операторов, в которых имя обрабатываемой базы данных не указывается явным образом). Если такая база данных не существует или пользователь не имеет достаточно полномочий на доступ к ней, оператор use останавливает свою работу.

Синтаксис комментариев

В этом разделе рассказывается, как писать комментарии в коде SQL, а также описываются особенности интерпретации комментариев клиентскими программами mysql. Комментарии довольно часто используются в



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

Сервер MySQL различает три вида комментариев.

Строка, начинающаяся с символа # , рассматривается как комментарий. Этот же синтаксис применяется в больщинстве оболочек и в языке Perl.

Выражение, заключенное между последовательностями /* и */ , рассматривается как комментарий. Записанный в такой форме комментарий может занимать несколько строк и используется также в языке С.

В версии MySQL 3.23.3 и более поздних комментарии можно начинать с символов - (два тире и пробел). При этом весь текст, расположенный между этими символами и концом строки, рассматривается как комментарий. Подобный стиль комментирования применяется в некоторых других системах управления базами данных, однако без пробела. В MySQL пробел необходим во избежание недоразумений в выражениях вида valuel-valuel, где valuel - отрицательное значение (в этом случае второе значение может рассматриваться как комментарий).

При обработке запросов сервер пропускает комментарии. Исключение составляют лищь комментарии, которые начинаются символами /* ! и трактуются специальным образом. В этом случае текст должен содержать ключевые слова SQL, которые и будут восприниматься сервером как часть оператора, в котором расположены комментарии. Так, например, сервер одинаково воспримет следующие строки;

INSERT LOW PRIORITY INTO my tbl SET ... INSERT /*! LOW PRIORITY */ INTO my tbl SET ...

Эта форма комментария предназначается специально для определения расщирений и ключевых слов MySQL. MySQL распознает заданные ключевые слова, а другие серверы SQL игнорируют их. Это упрощает написание запросов, которые позволяют воспользоваться расщиренными возможностями MySQL и в то же время работают с другими СУБД. Стиль комментирования с символами /* ! впервые появился в MySQL 3.22.7.

В версии MySQL 3.22.26 и более поздних после символов /* ! можно указывать номер версии. Это укажет MySQL пропускать комментарии, если номер версии сервера меньще указанного. Представленные ниже комментарии к оператору UPDATE, например, будут проигнорированы, если только не используется сервер версии 3.23.3 или более поздней версии.

UPDATE my table SET my coI = 100 WHERE my coI < 100 /*132303 LIMIT 100 */

Клиент MySQL обладает более офаниченными, чем сервер возможностями распознавания комментариев. Профамма mysql может неправильно интерпретировать представленную в форме С-комментариев кон-



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

mysql> SELECT /* I have no quote */ 1; +---+

I 1 I +---+

I 1 I +---+

irysql> SELECT /* Ive got a quote */ i; >

Первый оператор проанализирован профаммой mysql правильно и послан на сервер для выполнения, после чего снова появляется подсказка mysql> . Второй оператор содержит комментарии с одним символом кавычек. В результате профамма mysql входит в режим анализа строки и продолжает находиться в нем после запуска строки, что видно по подсказке > . Чтобы выйти из этого режима, введите второй символ кавычки с последующей командой /с для отмены запроса. Более детальное описание предложений профаммы mysql представлено в приложении Д, Профаммы MySQL .



1 ... 211 212 213 [ 214 ] 215 216 217 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика