[Homework] Бази данни - SQL Performance - Problem 3
Здравейте, колеги,
Отварям темата, понеже срещнах затруднения със задачата и се надявам да успеем да си помогнем взаимно. След известно ровене в нета стигнах до следния код за партишънинг по години:
CREATE TABLE performance_test (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
date DATETIME,
text VARCHAR(500)
)
PARTITION BY RANGE (YEAR(date)) (
PARTITION 90s VALUES LESS THAN (2001),
PARTITION 2000s VALUES LESS THAN (2011),
PARTITION 2010s VALUES LESS THAN (2021)
);
Получавам следната грешка:
Error Code: 1503. A PRIMARY KEY must include all columns in the table's partitioning function
След ровене в гугъл намерих следното:
https://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html
Явно не мога да го разбера, написаното ми звучи като абсолютна глупост. Нито искам датата да е уникална, нито искам да включвам Id-то в комбинация с дата за уникалност. Някой борил ли се е със задачата? Нека сподели.
Намерих проблема. Вътре в процедурата променливите се пишат с @ и не е нужно да се декларират, просто се прави @p1 = 0