|
Программирование >> Программный интерфейс приложений
(или записываются при выводе) на основании определенной ширины столбца. Так, например, столбцы значений varchar (15) и mediumint (5) считываются соответственно как 15-символьные и 5-символьные поля. Значения null записываются как строки пробелов. Если задается предложение ignore п lines, первые п строк ввода пропускаются. Например, если файл данных содержит строку с заголовками столбцов, которую вставлять в таблице базы данных вовсе необязательно, можно добавить предложение ignore 1 lines: LOAD DATA LOCAL INFILE my tbl.txt INTO TABLE my tbl IGNORE I LINES Если список columnjist не определен, предполагается, что строки ввода содержат по одному значению для каждого столбца таблицы. Если же в этом списке содержится одно или несколько разделенных запятыми имен столбцов, строки ввода должны включать значения для всех перечисленных столбцов. Столбцам, которые не указаны в списке, присваиваются значения по умолчанию. Если же в строке ввода указано меньше значений, чем имен столбцов в списке columnjist, неопределенным столбцам присваиваются значения по умолчанию. При обработке файла с отформатированным текстом, созданным на компьютере с Windows, можно использовать установленный по умолчанию разделитель столбца. Следует учитывать, что строки в таком тексте наверняка разрываются с помошью пары возврат каретки/переход на новую строку . Для загрузки такого файла определите новый ограничитель строки ( \г отражает символ возврата каретки, а \п - переход на новую строку): LOAD DATA LOCAL INFILE my tbl.txt INTO TABLE my tbl LINES TERMINATED BY \r\n К сожалению, обработка созданных под управлением Windows файлов может закончиться записью ошибочной информации в базу данных, если создавшая этот файл программа использует устаревшее правило помешать в конце файла символ <Ctrl+Z>. Вам придется либо записать файл с помошью более современной программы, либо удалить ошибочную запись после загрузки файла. В некоторых файлах значения разделены между собой запятыми, а поля заключены в двойные кавычки. Если предположить, что в конце строк такого файла размещаются символы перехода на новую строку, то оператор load data ДЛЯ считывания такого файла должен выглядеть следующим образом: LOAD DATA LOCAL INFILE my tbl.txt INTO TABLE my tbl FIELDS TERMINATED BY , ENCLOSED BY \ Приведенный ниже оператор позволяет считать файл, в котором поля разделены символами <Ctrl-(-A> (ASCH 1), а строки заканчиваются символом <Ctrl+B> (ASCn 2). LOAD DATA LOCAL INFILE my tbl.txt INTO TABLE my tbl FIELDS TERMINATED BY 0x01 LINES TERMINATED BY 0x02 LOCK TABLES LOCK TABLES lock list Устанавливает блокировку на таблицы, перечисленные в списке locklist, не завершая свою работу, если необходимо, до тех пор, пока не установятся все блокировки. Синонимом этого оператора выступает оператор lock table. Список lock list может состоять из одного или нескольких разделенных элементов, каждый из которых должен иметь следующий синтаксис: tbl name [AS alias name] {READ [LOW PRIORITY) WRITE} Ключевое слово read указывает на блокировку с правами чтения. Этот вид блокировки позволяет клиентам считать данные таблицы, но запрещает выполнять запись. Ключевое слово write отражает полную блокировку. Если заданы ключевые слова low priority write, блокировка не устанавливается до тех пор, пока все клиенты не перестанут считывать данные таблицы. Если в момент запуска оператора с таким видом блокировки кто-то из клиентов считывает данные таблицы, то и остальные смогут к ней обратиться. Только по завершении считывания всех пользователей оператор будет выполнен. Оператор lock tables позволяет определить также и псевдоним для блокируемой таблицы, чтобы впоследствии использовать его в запросах. Если обрашение к таблице в запросе выполняется несколько раз, необходимо заблокировать каждый образец таблицы. При выполнении оператора lock tables снимаются также все имеюшиеся в настоящее время блокировки. Следовательно, чтобы заблокировать несколько таблиц, необходимо все их указать в одном операторе lock tables. Все установленные клиентом блокировки автоматически снимаются при завершении сеанса его работы. Блокировки с ключевым словом lowpriority впервые появились в MySQL версии 3.22.5. LOCK TABLES student READ, score WRITE, event READ LOCK TABLE member READ OPTIMIZE TABLE optimize table tbljname Освобождает неиспользуемое свободное пространство таблицы. Результатом появления такого неиспользуемого пространства может быть выполнение операторов delete, replace и update, особенно для таблиц со строками переменной длины. Оператор optimize table исключает неиспользуемое пространство, благодаря чему размеры таблицы становятся меньше. В версиях MySQL серии 3.23 планируется добавить дополнительные опции поддержки таблиц, поэтому рекомендуется для получения более детальной информации ознакомиться с материалом справочного руководства по MySQL. REPLACE replace [low priority delayed] [into] tbl name [{columnjist)] values {expr [, expr] ...) [, (...)] ... replace [low priority delayed] [into] )bl name [{columnjist)] select ... replace [L0W PR10RITY delayed] [into] tbl name set col name=expr [, col name=expr] . . . Оператор replace аналогичен оператору insert с той лишь разницей, что при вставке строки с дублируюшим значением для индекса unique одной из уже сушествуюших строк таблицы, старое значение удаляется перед вставкой нового. Именно поэтому в синтаксисе оператора replace отсутствует ключевое слово ignore. Более детально об элементах этого оператора рассказывается в описании оператора insert. REVOKE revoke privjype [{columnjist)] [, privjype [{columnjist)] ...] on f*.* I * I db name.tbl name tbl name) fron user [, user] . . . Оператор revoke лишает пользователя (или пользователей) указанных привилегий. Предложения privjype, columnjist и user определяются так же, как и в операторе grant. Те же спецификаторы можно использовать и в предложении on. В процессе выполнения оператор revoke не удаляет пользователя из таблицы разрешений. Это означает, что пользователь все еше сможет подключиться к серверу [VlySQL. Чтобы полностью запретить пользователю подключение, необходимо вручную удалить его запись из таблицы разрешений. Оператор revoke впервые появился в MySQL версии 3.22.П. Рассмотрим несколько примеров. Чтобы лишить пользователя superduperglocalhost всех привилегий, выполните следующий оператор: revoke all on *.* fron superduper@IocaIhost Теперь давайте удалим привилегии, которые давали возможность пользователю member mgr изменять таблицу member базы данных samp db: revoke insert,delete,update on samp db.member fron member mgr@boa.snake.net И наконец, для удаления всех привилегий доступа к единственной таблице базы данных menagerie со стороны анонимного пользователя локального компьютера можно воспользоваться следующим оператором: revoke all on menagerie.pet fron Olocalhost
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |