MySQL 5.0. Библиотека программиста | страница 52



400 Вт, 800 Вт, 1200 Вт\',\'1145.00\'),

(\'Гриль Мосбытприбор СТ-14\',

\'Мощность 1440 Вт. Быстрый нагрев. Термостат.

Цветовой индикатор работы\',\'2115.00\'),

(\'Кофеварка Мосбытприбор ЕКЛ-1032\',

\'Цвет: черный. Мощность: 450 Вт.

Вместительность: 2 чашки\',\'710.00\'),

(\'Чайник Мосбытприбор МН\',

\'Цвет: белый. Мощность: 2200 Вт. Объем: 2 л\',\'925.00\'),

(\'Утюг Мосбытприбор c паром АБ 200\',

\'Цвет: фиолетовый. Мощность: 1400 вт\',\'518.00\');

Эта команда добавляет значения в столбцы description (наименование), details (описание) и price (цена) таблицы Products. При этом в столбец id (идентификатор) автоматически вносятся порядковые номера строк, поскольку этот столбец имеет тип данных SERIAL (см. листинг 2.3).

Теперь, когда данные внесены и в таблицу Customers (Клиенты) (в предыдущем подразделе было рассказано, как загрузить в эту таблицу данные из файла), и в таблицу Products, можно заполнять таблицу Orders (Заказы). Напомню, что каждая строка таблицы Orders ссылается на строку таблицы Customers и строку таблицы Products, и в момент добавления строки в таблицу Orders соответствующие строки в таблицах Customers и Products должны уже существовать. Внесите в таблицу Orders сведения о заказах, выполнив команду, представленную в листинге 2.6.

Листинг 2.6. Команда добавления строк в таблицу Orders

INSERT INTO Orders

VALUES

(1012,\'2007-12-12\',5,8,\'4500\',533),

(1013,\'2007-12-12\',2,14,\'22000\',536),

(1014,\'2008-01-21\',5,12,\'5750\',533);

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

SHOW VARIABLES LIKE \'sql_mode\

Эта команда показывает значение переменной sql_mode. Если в значении нет ключевых слов STRICT_TRANS_TABLES и STRICT_ALL_TABLES, это означает, что сервер работает в нестрогом режиме.

В нестрогом режиме вставляемое некорректное значение преобразуется в допустимое, в частности

• некорректная дата заменяется нулевой датой (0000-00-00 00:00:00);

• «лишние» символы в слишком длинном символьном значении отбрасываются (так, значение abc, вставляемое в столбец с типом CHAR(2), сокращается до ab);

• слишком большое число заменяется максимально возможным значением для данного типа столбца;

• при внесении в числовой столбец символьного значения все символы, начиная с первой буквы, отбрасываются, и в таблицу вносится начальная числовая часть значения, а если первый символ в значении буква, а не цифра, то значение заменяется нулем (даже если задано отличное от нуля значение по умолчанию);