2016-02-08 6 views
0

У меня есть следующая таблицаСоздать раздел, если не существует на MySQL

id | p_key | col3 | col4 
------------------------ 
1 | pr1 | c1 | co1 
2 | pr2 | c2 | co2 
3 | pr3 | c3 | co3 

Теперь я должен создать раздел на ключ проекта, что-то вроде

If partition partpr1 not exist 
alter table create partition partpr1 

Я хочу создать раздел с p_key, но хочу чтобы проверить, существует ли она или нет до вставки записи, если она существует, она будет вставляться в этот раздел, иначе она сначала создаст раздел, а затем вставляет.

Не выставлять код. потому что я могу создать простой раздел, но не мог получить никакой логики для реализации желаемого сценария.

+0

Давайте посмотрим 'SHOW CREATE TABLE'. –

+0

Почему у вас есть разделение? Представление? Что-то другое? –

ответ

2

Согласно MYSQL Manual

ADD PARTITION и DROP PARTITION в настоящее время не поддерживает IF [NOT] EXISTS.

Кроме того, ваш синтаксис неправильно в любом случае,

ALTER TABLE t1 ADD PARTITION (PARTITION p3 ЗНАЧЕНИЯ МЕНЕЕ (2002));

Но эта страница также in The Manual может быть полезным, поскольку оно показывает ряд способов, вы можете запрашивать MYSQL, а затем посмотреть на результаты, чтобы увидеть, если раздел с таким именем уже существует.

Через команды SHOW или напрямую запрашивая таблицу INFORMATION_SCHEMA.PARTITIONS.

+0

Я не публиковал код, это просто псевдокод. –

Смежные вопросы