MySQL. Библиотека профессионала - Аткинсон Л
..pdf592 Приложение Г. Коды ошибок 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 многострочны ми инструкциями.
ПРИМЕР БАЗЫ ДАННЫХ
В этом приложении.
Диаграммы Схема базы данных
Схема базы данных 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,