Листинг 4.4. Невозможно создать базу данных wet: база данных существует
Часто такое поведение нежелательно, особенно в больших дампах, размещенных mysql-файлах, которые выполняются в пакетном режиме так, как это было продемонстрировано в главе 3. Для предотвращения ошибки оператор create database можно снабдить конструкцией if not exists, при наличии которой база данных создаете; если она еще не существует, если же существует — никаких действий не производится (листинг 4.5).
4.5. Использование конструкцииif not exists
Как видно из листинга 4.5, после удаления базы данных wet первый оператор CREATE DATABASE возвращает ответ, в котором говориться о том, что была задействована одна строка (1 row affected), т.е. база данных создается. Второй оператор CREATE DATABASE возвращает сообщение, что запрос не затронул не одной строки(0 rows affected), т. е. база данных не создается, однако и ошибка не выдается.
Точнотакой же механизм разработан для оператора drop database, добавление ключевогослова if exists удаляет базу данных, если она существует, и не производит никаких действий, если база данных отсутствует (листинг 4.6).
Листинг 4.6. Использование конструкцииif exists
Специального SQL-оператора, предназначенного для переименования базы данных, не существует, но эту операцию легко осуществить, переименовав каталог базы данных.
При создании базы данных можно указать кодировку, которая будет назначаться таблицам и столбцам по умолчанию. Для этого после имени базы данных следует указать ключевое СЛОВО DEFAULT CHARACTER SET charset_name, где charset_name— ИМЯкодировки, например cpl25l, которая обозначает русскую Windows-кодировку (листинг 4.7).
Дата добавления: 2020-11-18; просмотров: 450;