Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MySQL. Библиотека профессионала - Аткинсон Л

..pdf
Скачиваний:
166
Добавлен:
24.05.2014
Размер:
10.41 Mб
Скачать

592 Приложение Г. Коды ошибок MySQL

Код

Описание

 

 

 

 

Incorrect column name

 

 

 

 

The used table handler can't index column

 

 

All tables in the MERGE table are not identically defined

 

Can't write, because of unique constraint, to

 

 

BLOB column

used in keyspecification without a key length

1171

All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a

 

key, use UNIQUEinstead

 

 

 

Result consisted of more than one row

 

 

This table type requires a primary key

 

 

This version of MySQL is not

compiled with RAID support

 

You are using safe update mode and you tried to update a table without a

 

WHERE that usesaKEY column

 

 

doesn't exist in table

 

 

Can't open table

 

 

 

 

The handler for the table doesn't support

 

 

You are not allowed to execute this command in a transaction

 

Got error %d during COMMIT

 

1181

Got error during ROLLBACK

 

 

Got error during

 

 

 

 

Got error %d during CHECKPOINT

 

 

Aborted connection %ld to

user:

host:

 

The handler for the table does not support binary table dump

 

closed, cannot RESET MASTER

 

1187

Failed rebuilding the index of dumped table

 

 

Error from master:

 

 

 

 

Net error reading from master

 

Коды ошибок MySQL 593

Код

Описание

 

 

 

1190

Net error writing to master

 

 

 

Can't find

index matching the column list

 

Can't execute the given command because you have active locked tables or

 

an active transaction

 

 

 

Unknown system variable

 

 

 

Table

is marked as crashed and should be repaired

 

Table

is marked as crashed and last (automatic?) repair failed

 

Warning: Some

changed tables

be rolled back

1197

 

transaction

required more than

 

 

bytes of storage. Increase this

variable and try again

 

This operation cannot be performed with a running slave, run SLAVE

 

STOP first

 

 

 

1199

This operation requires a running slave, configure slave and do SLAVE

 

START

 

 

 

1200

The server is not configured as slave, fix in

file or with CHANGE

 

MASTER TO

 

 

1201

Could not initialize master info structure, check permissions on

1202

Could not create slave thread, check system resources

1203

User

has already more than

active connec

 

tions

 

 

 

You may only use constantexpressions with SET

РУКОВОДСТВО ПО ОФОРМЛЕНИЮ SQL СЦЕНАРИЕВ

В этом

Общие правила Идентификаторы Таблицы Инструкции

Приложение

приложении приведено краткое руководство по стилю оформления SQL листингов. Не рассматривайте изложенные здесь правила как единственно верный способ записи инструкций SQL. Никто не запрещает вам иметь свой

стиль. Согласованность важнее, чем единообразие.

Данное руководство касается листингов, сохраняемых в текстовом файле или иным способом передаваемых другим пользователям. К текстам инструкций, наби раемых в оболочке интерпретатора команд, предъявляется только одно требование: скорость ввода.

Общие правила

Начинайте каждую инструкцию с нулевой колонки и разбивайте ее на несколько строк, если длина инструкции превышает 79 символов. Все последующие строки должны начинаться с отступа. Лучше всего разбивать строки непосредственно перед идентификатором предложения. В случае необходимости вставляйте разрыв строки после запятой. Каждое условие отбора в предложении WHERE должно записываться в отдельной строке. Приведем пример:

SELECT

FROM item i INNER JOIN s ON

WHERE 3

AND

ORDER BY i.Name

596 Приложение Д. Руководство по оформлению SQL сценариев

Идентификаторы

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

Имя промежуточной таблицы, которая служит для представления отношения "многие ко многим", должно состоять из имен исходных таблиц, разделенных симво лом подчеркивания, например sku_variation. He используйте символы подчерки вания в именах столбцов. Также не рекомендуется использовать идентификаторы с цифрами.

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

SELECT

FROM s INNER JOIN sku_variation

ON

INNER JOIN variation v

ON

Таблицы

По возможности старайтесь использовать в качестве первичного ключа. Назовите его ID и сделайте первым столбцом.

Сначала должны быть перечислены все столбцы, а после них — индексы. Все деления могут сопровождаться комментариями. Внешние ключи игнорируются в MySQL версии3.23, но они послужат документацией к схеме базы данных.

Имя внешнего ключа должно соответствовать имени таблицы, на которую он ссы лается. Например, в следующей инструкции столбец Attribute ссылается на таблицу attribute:

CREATE TABLE variation

столбцы

ID NOT NULL

Name NOT NULL,

Attribute NOT NULL,

Description

Graphic

NOT NULL,

индексы

PRIMARY

KEY

KEY

KEY

He включайте имена таблиц в имена столбцов. Записи ID вполне дос таточно, тогда как запись variation ID явно избыточна.

Инструкции 597

Инструкции

При записи инструкций SELECT пользуйтесь оператором JOIN для создания динений, а не операторами сравнения в предложении WHERE. Это позволяет легко определять, какие выражения задают правила объединения таблиц, а какие — ограни чивают число записей в таблице результатов запроса.

В инструкциях INSERT указывайте только те столбцы, значения которых отлича ются от заданных по умолчанию. не нужно указывать вообще. Если есть возможность, заменяйте группы одиночный инструкций INSERT многострочны ми инструкциями.

ПРИМЕР БАЗЫ ДАННЫХ

В этом приложении.

Диаграммы Схема базы данных

Приложение

приложении приведена схема базы данных для проекта

(http://share.whichever.com/freetrade). Он представляет собой набор средств элек тронной коммерции, написанный на Я начал вести этот открытый проект в 1999 г. и применял его длясоздания нескольких Как и любой открытый

проект, он постоянно находится в стадии доработки, поэтому в нем могут быть ошибки.

Диаграммы

На рис. E.2 и изображены диаграммы базы данных. Единая диаграмма не смогла бы поместиться на одной странице, поэтому я разбил ее на несколько секций. Прямоугольники с пунктирным контуром представляют собой таблицы, которые оп ределены в других секциях.

Рис. I. Таблицы каталога

600 Приложение Пример базы данных

Рис. Таблицы заказов

Схема базы данных 601

Схема базы данных

Ниже приведены инструкции требуемые для реализации базы данных проек

та

Глобальные адреса для заказов и

DROP TABLE IF EXISTS address;

CREATE TABLE

ID INT NOT NULL

Name_Prefix

CHAR(255),

Name_Last NOT NULL,

Company

Street2

City NOT NULL,

NOT NULL,

NOT NULL,

ISO 3166

Phone2

Fax

Email NOT NULL,

PRIMARY

Атрибуты товаров

DROP TABLE IF EXISTS attribute;

CREATE TABLE attribute

ID INT NOT NULL

Name NOT NULL,

Graphic

INT NOT NULL,

PRIMARY

INDEX (DisplayPrecedence, Name)

Варианты оплаты счетов (Visa,

DROP TABLE IF EXISTS billing;

CREATE TABLE billing

ID INT NOT NULL AUTO_INCREMENT,

Name NOT NULL,

DisplayPrecedence INT NOT NULL,