SlideShare a Scribd company logo
1 of 57
Раскрываем магию MySQL
или
о строгости и мягкости
MySQL
Видеозапись http://youtu.be/ee5mbBbkW4U
Компании

Сертификаты

Афанасьев Юрий
E-mail: oriand@yandex.ru
Три типичные ошибки
разработчика БД MySQL
Пример 1
???
Тип

Байт

Мин.

Макс.

[SIGNED] TINYINT

1

-128

127

UNSIGNED TINYINT

1

0

255

[SIGNED] SMALLINT

2

-32768

32767

UNSIGNED SMALLINT

2

0

65535

[SIGNED] MEDIUMINT

3

-8388608

8388607

UNSIGNED MEDIUMINT

3

0

16777215

[SIGNED] INT

4

-2147483648

2147483647

UNSIGNED INT

4

0

4294967295

[SIGNED] BIGINT

8

-9223372036854775808

9223372036854775807

UNSIGNED BIGINT

8

0

18446744073709551615
BIGINT
Валидация на стороне БД,
но …

VARCHAR(10)
Валидация на стороне
языка
программирования
Пример 2
???
Пример 3
???
Основные промышленные
реляционные базы данных
SQL mode
Внимание! Не пытайтесь на боевом сервере менять
значение SQL mode.
Смена режима SQL mode после создания и вставки
данных в таблицы типа «partition» может привести к
потере или повреждению данных!
При репликации партиционных таблиц, отличающиеся
параметры SQL mode на Primary и Slave MySQL
серверах также может привести к проблемам. Для
стабильной работы репликации между серверами,
настройки SQL mode должны быть идентичными.
SQL modes – это настройка поведения работы сервера
MySQL, состоящая из режимов, каждый из которых
контролирует какой-либо один аспект обработки
запроса.
1. Устанавливает строгую или мягкую проверку входных
данных
2. Включает или отключает следование SQL стандарту
3. Обеспечивает лучшую синтаксическую
совместимость с другими БД
Глобальная настройка для всего сервера

Настройка для текущей сессии

Изменение режима
Краткий справочник режимов
ANSI_QUOTES
Заставляет сервер интерпретировать двойную кавычку
( " ) точно также, как и обратную кавычку ( ` ), при этом
она теряет способность обрамлять строки.
IGNORE_SPACE
Заставляет сервер игнорировать пробелы между
именем функции и скобкой, что позволяет
устанавливать пробелы между названием функции и
открывающейся скобкой. При этом имена всех функций
становятся зарезервированными.
ERROR_FOR_DIVISION_BY_ZERO
При делении на ноль в строгом режиме генерируется
ошибка (или предупреждение, если не включён строгий
режим) во время выполнения операторов INSERT и
UPDATE. Без этого параметра деление на ноль
возвращает предупреждение и вставляет в таблицу
NULL.
STRICT_TRANS_TABLES
Включает «строгий режим» для всех баз данных,
поддерживающих транзакции (InnoDB и BDB).
Включение строгого режима генерирует ошибку вместо
предупреждения!
Строгость распространяется на:
1. Поверка входных данных на соответствие
заданному типу
2. Нахождение внутри диапазона для чисел и дат
3. При вставке данных пропущено значение колонки,
для которой не задано значение по умолчанию и
имеет атрибут NOT NULL
4. Длина значения выходит за пределы заданного
диапазона
5. Для типов ENUM и SET отсутствует вставляемое
или обновляемое значение
STRICT_ALL_TABLES
STRICT_ALL_TABLES полностью соответствует
STRICT_TRANS_TABLES, но действие параметра уже
распространяется на все виды баз данных MySQL, а не
только на те, которые поддерживают транзакции.
Из-за разницы подходов к работе транзакционных и не
транзакционных таблиц не всегда есть смысл
использовать данный режим.
TRADITIONAL
Заставляет MySQL вести себя как большинство
«традиционных» баз данных SQL.
Данный режим является композитным режимом,
включающий в себя «строгий режим», а также ряд
других режимов.
ANSI
Композитный режим, заставляет MySQL быть «ANSIподобным», т.е. приближенным к стандарту SQL.
Включает в себя: REAL_AS_FLOAT,
PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE.

REAL_AS_FLOAT – тип данных real является
синонимом float, а не double.
PIPES_AS_CONCAT – разрешает использовать для
конкатенации строк | | , вместо логического ИЛИ.
ONLY_FULL_GROUP_BY
Генерирует ошибку в запросах, в которых GROUP BY
имеет не полный список не агрегированных параметров
из SELECT и HAVING.
Строгий режим
• Возвращает ошибку.
• Для транзакционных таблиц откатывает транзакцию
(rollback).
Для не транзакционных таблиц отменяет изменение в
таблице.
Следует учесть, что в не транзакционных таблицах
при изменении сразу нескольких строк, в случае
ошибки отменяется только последнее значение,
вместо отката всех параметров.
Генерирует ошибку в следующих случаях:
• Тип вставляемых данных отличается от заданного
типа данных
• Пропуск значения в столбце, у которого нет значения
по умолчанию и задан параметр NOT NULL.
• Для чисел и дат – данные находятся вне диапазона
допустимых значений.
• Для строк – превышение допустимой длины.
• Для типа ENUM и SET – значение не является
допустимым для заданного перечисления.
• Для столбца определённого как NOT NULL - вставка
NULL.
Дефолтные значения для
типов данных
Порядок обработки данных
1.

2.

Если столбец имеет значение по умолчанию, то
используется это значение и на этом всё
заканчивается, в противном случае происходит
переход к следующему шагу
Если столбец не имеет параметр NOT NULL, то
присваивается NULL и на этом всё заканчивается,
в противном случае поведение зависит от
переменной sql_mode, точнее от строгости самого
режима.

В строгом режиме генерируется ошибка.
Значения по умолчанию для
разных типов данных
•
•
•
•
•

В нестрогом режиме происходит неявное
преобразование в дефолтное значение типа данных:
Для типа int значение по умолчанию - ноль.
Для всех строк, кроме типа enum – пустая строка.
Для enum – первый нумерованный член.
Для даты и времени – нулевые значения
'0000-00-00 00:00:00‘
Для timestamp — текущая дата и время, если колонка
была автоматически инициализирована, либо
нулевыми значениями '0000-00-00 00:00:00'
Нестрогий режим
Случаи обработки некорректных
данных
• Запросы на модификация данных: INSERT, UPDATE,
REPLACE или LOAD DATA INFILE.
• Обновление описания схем таблиц: ALTER TABLE.
• Задание значения по умолчанию (DEFAULT) в описании
колонок.
В нестрогом режиме значение приводится к
корректному значению и генерируется предупреждение.
Для просмотра ошибок используйте SHOW WARNINGS.
Выход из диапазона допустимых
значений
Если число меньше минимального значения допустимого
диапазона, то присваивается минимально-допустимое число. Если
больше максимального – максимально-допустимое.
Обработка строк
Строки длиннее заданной длины колонки усекаются.
ENUM и SET типы данных
Если присваиваемое значение колонке с типом ENUM
не перечислено в определении ENUM, то MySQL
преобразует его в пустую строку.
Если значение, которое присваивается SET столбцу
содержит элементы, которые не перечислены в
определении SET, то MySQL отбрасывает эти
элементы, сохраняя значения только легальным
элементам.
Преобразование в тип даты
При попытке сохранения значения, которое не может
быть преобразовано в тип данных столбца, MySQL
неявно преобразует его в значение по умолчанию для
данного типа.
Таблица преобразований
String

DATE

INT

'2010-03-12'

'2010-03-12'

2010

'03-12-2010'

'0000-00-00'

3

'0017'

'0000-00-00'

17

'500 hats'

'0000-00-00'

500

'bartholomew'

'0000-00-00'

0
Присвоение NULL
для колонки с NOT NULL
Результат зависит от того, будет вставлена одна строка
или множество в INSERT запрос.
При вставке одной строки возникает ошибка и
изменения не применяются. При множественной
вставке - MySQL неявно преобразует значение по
умолчанию для этого типа данных.
ALTER TABLE
При изменении типа данных на колонку налагаются
ограничения нового типа, что может привести к
неожиданному изменению самих данных.
Если на колонку налагается ограничение NOT NULL, то
все NULL значения конвертируются в значения по
умолчанию для заданного типа данных текущей
колонки.
Извлекаем плюсы
Ключевое слово IGNORE
Ключевое слово IGNORE заставляет MySQL
использовать нестрогий режим для запроса. Также
используется для генерации предупреждения вместо
ошибки, при нарушении целостности первичного ключа
(PRIMARY KEY) или уникальности (UNIQUE).
ON DUPLICATE KEY UPDATE
Используется для выполнения вставки данных, либо
при их обновлении и нарушении целостности
первичного ключа (PRIMARY KEY) или уникальности
(UNIQUE).
ВОПРОСЫ?

More Related Content

Featured

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

Featured (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

раскрываем магию My sql или о строгости и мягкости mysql

  • 1. Раскрываем магию MySQL или о строгости и мягкости MySQL Видеозапись http://youtu.be/ee5mbBbkW4U
  • 5. ???
  • 6.
  • 7. Тип Байт Мин. Макс. [SIGNED] TINYINT 1 -128 127 UNSIGNED TINYINT 1 0 255 [SIGNED] SMALLINT 2 -32768 32767 UNSIGNED SMALLINT 2 0 65535 [SIGNED] MEDIUMINT 3 -8388608 8388607 UNSIGNED MEDIUMINT 3 0 16777215 [SIGNED] INT 4 -2147483648 2147483647 UNSIGNED INT 4 0 4294967295 [SIGNED] BIGINT 8 -9223372036854775808 9223372036854775807 UNSIGNED BIGINT 8 0 18446744073709551615
  • 8. BIGINT Валидация на стороне БД, но … VARCHAR(10) Валидация на стороне языка программирования
  • 10. ???
  • 11.
  • 13. ???
  • 14.
  • 17. Внимание! Не пытайтесь на боевом сервере менять значение SQL mode. Смена режима SQL mode после создания и вставки данных в таблицы типа «partition» может привести к потере или повреждению данных! При репликации партиционных таблиц, отличающиеся параметры SQL mode на Primary и Slave MySQL серверах также может привести к проблемам. Для стабильной работы репликации между серверами, настройки SQL mode должны быть идентичными.
  • 18. SQL modes – это настройка поведения работы сервера MySQL, состоящая из режимов, каждый из которых контролирует какой-либо один аспект обработки запроса. 1. Устанавливает строгую или мягкую проверку входных данных 2. Включает или отключает следование SQL стандарту 3. Обеспечивает лучшую синтаксическую совместимость с другими БД
  • 19. Глобальная настройка для всего сервера Настройка для текущей сессии Изменение режима
  • 21. ANSI_QUOTES Заставляет сервер интерпретировать двойную кавычку ( " ) точно также, как и обратную кавычку ( ` ), при этом она теряет способность обрамлять строки.
  • 22. IGNORE_SPACE Заставляет сервер игнорировать пробелы между именем функции и скобкой, что позволяет устанавливать пробелы между названием функции и открывающейся скобкой. При этом имена всех функций становятся зарезервированными.
  • 23. ERROR_FOR_DIVISION_BY_ZERO При делении на ноль в строгом режиме генерируется ошибка (или предупреждение, если не включён строгий режим) во время выполнения операторов INSERT и UPDATE. Без этого параметра деление на ноль возвращает предупреждение и вставляет в таблицу NULL.
  • 24.
  • 25.
  • 26. STRICT_TRANS_TABLES Включает «строгий режим» для всех баз данных, поддерживающих транзакции (InnoDB и BDB). Включение строгого режима генерирует ошибку вместо предупреждения!
  • 27. Строгость распространяется на: 1. Поверка входных данных на соответствие заданному типу 2. Нахождение внутри диапазона для чисел и дат 3. При вставке данных пропущено значение колонки, для которой не задано значение по умолчанию и имеет атрибут NOT NULL 4. Длина значения выходит за пределы заданного диапазона 5. Для типов ENUM и SET отсутствует вставляемое или обновляемое значение
  • 28. STRICT_ALL_TABLES STRICT_ALL_TABLES полностью соответствует STRICT_TRANS_TABLES, но действие параметра уже распространяется на все виды баз данных MySQL, а не только на те, которые поддерживают транзакции. Из-за разницы подходов к работе транзакционных и не транзакционных таблиц не всегда есть смысл использовать данный режим.
  • 29. TRADITIONAL Заставляет MySQL вести себя как большинство «традиционных» баз данных SQL. Данный режим является композитным режимом, включающий в себя «строгий режим», а также ряд других режимов.
  • 30. ANSI Композитный режим, заставляет MySQL быть «ANSIподобным», т.е. приближенным к стандарту SQL. Включает в себя: REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE. REAL_AS_FLOAT – тип данных real является синонимом float, а не double. PIPES_AS_CONCAT – разрешает использовать для конкатенации строк | | , вместо логического ИЛИ.
  • 31. ONLY_FULL_GROUP_BY Генерирует ошибку в запросах, в которых GROUP BY имеет не полный список не агрегированных параметров из SELECT и HAVING.
  • 33. • Возвращает ошибку. • Для транзакционных таблиц откатывает транзакцию (rollback). Для не транзакционных таблиц отменяет изменение в таблице. Следует учесть, что в не транзакционных таблицах при изменении сразу нескольких строк, в случае ошибки отменяется только последнее значение, вместо отката всех параметров.
  • 34.
  • 35. Генерирует ошибку в следующих случаях: • Тип вставляемых данных отличается от заданного типа данных • Пропуск значения в столбце, у которого нет значения по умолчанию и задан параметр NOT NULL. • Для чисел и дат – данные находятся вне диапазона допустимых значений. • Для строк – превышение допустимой длины. • Для типа ENUM и SET – значение не является допустимым для заданного перечисления. • Для столбца определённого как NOT NULL - вставка NULL.
  • 37. Порядок обработки данных 1. 2. Если столбец имеет значение по умолчанию, то используется это значение и на этом всё заканчивается, в противном случае происходит переход к следующему шагу Если столбец не имеет параметр NOT NULL, то присваивается NULL и на этом всё заканчивается, в противном случае поведение зависит от переменной sql_mode, точнее от строгости самого режима. В строгом режиме генерируется ошибка.
  • 38. Значения по умолчанию для разных типов данных • • • • • В нестрогом режиме происходит неявное преобразование в дефолтное значение типа данных: Для типа int значение по умолчанию - ноль. Для всех строк, кроме типа enum – пустая строка. Для enum – первый нумерованный член. Для даты и времени – нулевые значения '0000-00-00 00:00:00‘ Для timestamp — текущая дата и время, если колонка была автоматически инициализирована, либо нулевыми значениями '0000-00-00 00:00:00'
  • 40. Случаи обработки некорректных данных • Запросы на модификация данных: INSERT, UPDATE, REPLACE или LOAD DATA INFILE. • Обновление описания схем таблиц: ALTER TABLE. • Задание значения по умолчанию (DEFAULT) в описании колонок. В нестрогом режиме значение приводится к корректному значению и генерируется предупреждение. Для просмотра ошибок используйте SHOW WARNINGS.
  • 41. Выход из диапазона допустимых значений Если число меньше минимального значения допустимого диапазона, то присваивается минимально-допустимое число. Если больше максимального – максимально-допустимое.
  • 42. Обработка строк Строки длиннее заданной длины колонки усекаются.
  • 43. ENUM и SET типы данных Если присваиваемое значение колонке с типом ENUM не перечислено в определении ENUM, то MySQL преобразует его в пустую строку. Если значение, которое присваивается SET столбцу содержит элементы, которые не перечислены в определении SET, то MySQL отбрасывает эти элементы, сохраняя значения только легальным элементам.
  • 44.
  • 45. Преобразование в тип даты При попытке сохранения значения, которое не может быть преобразовано в тип данных столбца, MySQL неявно преобразует его в значение по умолчанию для данного типа.
  • 46.
  • 48. Присвоение NULL для колонки с NOT NULL Результат зависит от того, будет вставлена одна строка или множество в INSERT запрос. При вставке одной строки возникает ошибка и изменения не применяются. При множественной вставке - MySQL неявно преобразует значение по умолчанию для этого типа данных.
  • 49. ALTER TABLE При изменении типа данных на колонку налагаются ограничения нового типа, что может привести к неожиданному изменению самих данных. Если на колонку налагается ограничение NOT NULL, то все NULL значения конвертируются в значения по умолчанию для заданного типа данных текущей колонки.
  • 50.
  • 51.
  • 53. Ключевое слово IGNORE Ключевое слово IGNORE заставляет MySQL использовать нестрогий режим для запроса. Также используется для генерации предупреждения вместо ошибки, при нарушении целостности первичного ключа (PRIMARY KEY) или уникальности (UNIQUE).
  • 54.
  • 55. ON DUPLICATE KEY UPDATE Используется для выполнения вставки данных, либо при их обновлении и нарушении целостности первичного ключа (PRIMARY KEY) или уникальности (UNIQUE).
  • 56.