Я использую эти таблицы для хранения данных. Я хотел бы удалить все данные старше 1 месяца (например), используя один SQL-запрос из всех таблиц.Удаление строк из нескольких таблиц
-- TABLE AGENT_HISTORY
CREATE TABLE AGENT_HISTORY(
EVENT_ID INTEGER NOT NULL,
AGENTID INTEGER NOT NULL,
EVENT_DATE DATE NOT NULL
)
/
CREATE TABLE CPU_HISTORY(
CPU_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
CPU_NAME VARCHAR2(50) NOT NULL,
CPU_VALUE NUMBER NOT NULL
)
/
CREATE TABLE CPU_TEMP_HISTORY(
CPU_TEMP_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
CPU_TEMP_NAME VARCHAR2(50) NOT NULL,
CPU_TEMP_VALUE NUMBER NOT NULL
)
/
CREATE TABLE MEMORY_HISTORY(
MEMORY_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
MEMORY_NAME VARCHAR2(50) NOT NULL,
MEMORY_VALUE NUMBER NOT NULL
)
/
CREATE TABLE DISK_HISTORY(
DISK_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
DISK_NAME VARCHAR2(50) NOT NULL,
DISK_VALUE NUMBER NOT NULL
)
/
CREATE TABLE NETWORK_HISTORY(
NETWORK_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
ADAPTER_NAME VARCHAR2(50) NOT NULL,
TRANSMITBYTES NUMBER NOT NULL,
TRANSMITSPEED NUMBER,
RECEIVESPEED NUMBER,
RECEIVEBYTES NUMBER
)
/
CREATE TABLE SWAP_HISTORY(
SWAP_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
SWAP_NAME VARCHAR2(50) NOT NULL,
SWAP_VALUE NUMBER NOT NULL
)
/
CREATE TABLE CONNECTIONS_HISTORY(
CONNECTIONS_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
CONNECTIONS_NAME VARCHAR2(50) NOT NULL,
CONNECTIONS_VALUE NUMBER NOT NULL
)
/
CREATE TABLE PARTITIONS_HISTORY(
PARTITIONS_HISTORY_ID INTEGER NOT NULL,
EVENT_ID INTEGER,
PARTITIONS_NAME VARCHAR2(50) NOT NULL,
PARTITIONS_VALUE NUMBER NOT NULL
)
/
Возможно ли это в Oracle? Я использую EVENT_ID как уникальный идентификатор ключа во всех таблицах.
Только одна из таблиц имеет столбец «дата», поэтому непонятно, что вы намерены удалить в других. –
Вы имеете в виду EVENT_ID как уникальный ключ? – leeor
Да, извините за ошибку. –