Возможности различных типов таблиц
Ключевые столбцы и ключ сортировки
| Таблица с Primary Key | Таблица с Duplicate Key | Таблица Aggregate | Таблица с Unique Key | |
|---|---|---|---|---|
| Ключевые столбцы и ограничения UNIQUE | Первичный ключ имеет ограничение UNIQUE и ограничение NOT NULL. | Duplicate key не имеет ограничения UNIQUE. | Aggregate key имеет ограничение UNIQUE. | Unique key имеет ограничение UNIQUE. |
| Логические связи между ключевыми столбцами и изменениями данных | Если значение первичного ключа новой строки данных совпадает с существующей строкой данных в таблице, происходит нарушение ограничения уникальности. Тогда новая строка данных заменит существующую строку данных. По сравнению с таблицей Unique Key, таблица Primary Key имеет улучшенный базовый механизм хранения и поэтому может заменить таблицу Unique Key. | Duplicate key не имеет ограничения UNIQUE. Поэтому, если значение Duplicate Key новой строки данных совпадает с существующей строкой данных в таблице, обе новая и старая строки данных сохраняются в таблице. | Если значение aggregate Key новой строки данных совпадает с существующей строкой данных в таблице, новая и старая строки данных будут агрегированы на основе aggregate key и агрегатных функций столбцов значений. | Если значение unique key новой строки данных совпадает с существующей строкой данных в таблице, новая строка данных заменит существующую строку данных. Таблицу Unique Key можно рассматривать как таблицу Aggregate, агрегатной функцией которой является replace. |
| Связь между ключевыми столбцами и ключом сортировки | Начиная с версии 1.5.0, ключ сортировки отделен от первичного ключа в таблице Primary Key. | Начиная с версии 1.5.0, таблицы Duplicate Key поддерживают указание ключей сортировки с помощью ORDER BY. Если используются и ORDER BY, и DUPLICATE KEY, то ORDER BY имеет приоритет. | Начиная с версии 1.5.0, ключ сортировки отделен от aggregate key в таблице Aggregate. Таблица Aggregate поддерживает указание ключа сортировки с помощью ORDER BY и указание aggregate key с помощью AGGREGATE KEY. Столбцы в ключе сортировки и aggregate key должны быть одинаковыми, но порядок столбцов не обязательно должен быть одинаковым. | Начиная с версии 1.5.0, ключ сортировки отделен от unique key в таблице Unique Key. Таблица Unique Key поддерживает указание ключа сортировки с помощью ORDER BY и указание unique key с помощью UNIQUE KEY. Столбцы в ключе сортировки и unique key должны быть одинаковыми, но порядок столбцов не обязательно должен быть одинаковым. |
| Типы данных, поддерживаемые ключевыми столбцами и ключом сортировки | Числовые (включая целые числа и BOOLEAN), строковые и дата (DATE и DATETIME). | Числовые (включая целые числа, BOOLEAN и DECIMAL), строковые и дата (DATE и DATETIME). | ||
| Связь между ключевыми столбцами и столбцами партиционирования/бакетирования | Столбцы партиционирования и бакетирования должны быть в первичном ключе. | Нет | Столбцы партиционирования и бакетирования должны быть в aggregate key. | Столбцы партиционирования и бакетирования должны быть в unique key. |