вы удалили таблицу из базы данных, но не удалили ее из _YOURCLUSTERNAME.sl_table.
Это важно de "_" перед YOURCLUSTERNAME.
4 ШАГИ крешить беспорядок:
1.Получите tab_id
, выберите tab_id из _YOURCLUSTERNAME.sl_table, где tab_relname = 'MYTABLENAME' и tab_nspname = 'MYSCHEMANAME'
Возвращает номер 2 в MYDATABASE
2.Триггеры удаления
выберите _YOURCLUSTERNAME.altertablerestore (2);
Это может вернуть ошибку.Потому что он пытается удалить триггеры в исходной таблице, а теперь есть новый. 3.Удалить индекс слоника, если он был создан
select _YOURCLUSTERNAME.tableDropKey (2);Это может вернуть ошибку.Потому что он пытается удалить индекс в исходной таблице, и теперь есть новая таблица.
4.Удалить таблицу из sl_table
удалить из _YOURCLUSTERNAME.sl_table где tab_id = 2;
Лучший способ удаления таблицы:
1.Удалите таблицу из кластера:
выберите tab_id из _YOURCLUSTERNAME.sl_table, где tab_relname = 'MYTABLENAME' и tab_nspname = 'MYSCHEMANAME'
Возвращает число 2 в MYDATABASE
Выполнить с помощью slonik
, где myfile.slonik: имя кластера = MYCLUSTER;NODE 1 ADMIN CONNINFO = 'имя_базы = имя_базы_данных_ хоста = пользователь HOST1_MASTER = порт postgres = 5432';NODE 2 ADMIN CONNINFO = 'dbname = DATABASENAME host = HOST2_SLAVE user = postgres port = 5432';
SET DROP TABLE (id = 2, origin = 1);
2 - это tab_id изsl_table и 1 - NODE 1, HOST1_MASTER
2.Удалите таблицу из ведомого
с помощью SQL DROP TABLE