Триггер для последнего введенного значения - PullRequest
0 голосов
/ 02 мая 2020

Может кто-нибудь помочь мне создать триггер, который добавляет последнюю запись из таблицы Sensordata в Lastsensordata. Я только хочу 1 значение для ConnectionDeviceId, и значение должно быть последним вставленным. (это будет использоваться, чтобы показать в калибре). Я свяжу свой sql скрипт под.

CREATE TABLE Revpi (
revpiName varchar(100) NOT NULL,
revpiDateTimeCreated datetime NOT NULL,
revpiLocation varchar(150) NOT NULL,
CONSTRAINT PK_revpiNavn PRIMARY KEY (revpiName)
);

CREATE TABLE Sensor (
sensorName varchar(100) NOT NULL,
revpiName varchar(100) NOT NULL,
sensorDateTimeCreated datetime NOT NULL,
CONSTRAINT PK_sensorNavn PRIMARY KEY (sensorName),
CONSTRAINT FK_revpiName FOREIGN KEY (revpiName) REFERENCES Revpi (revpiName)
);

CREATE TABLE Sensordata (
SensordataID int NOT NULL AUTO_INCREMENT,
data varchar (500),
ConnectionDeviceId varchar(500) NOT NULL,
EventProcessedUtcTime varchar(50) NOT NULL,
CONSTRAINT PK_sensorDataNavn PRIMARY KEY (SensordataID),
CONSTRAINT FK_sensorNavn FOREIGN KEY (ConnectionDeviceId) REFERENCES Sensor (sensorName)
);

CREATE TABLE Lastsensordata (
lastSensorNavn varchar(255) NOT NULL,
lastData varchar (500) NOT NULL,
LastTime varchar(50) NOT NULL,
CONSTRAINT PK_Lastsensordata PRIMARY KEY (lastSensorNavn),
CONSTRAINT FK_LastensordataSensordata FOREIGN KEY (lastSensorNavn) REFERENCES Sensordata (ConnectionDeviceId)
);

1 Ответ

0 голосов
/ 02 мая 2020

Вы можете сделать это с помощью следующего триггера:

CREATE TRIGGER after_insert_sensordata 
AFTER INSERT ON Sensordata
FOR EACH ROW 
REPLACE INTO Lastsensordata VALUES (NEW.ConnectionDeviceId, NEW.`data`, NEW.EventProcessedUtcTime);

Вам необходимо сделать поле lastSensorNavn уникальным. Также следует исправить несоответствие размера varchar между lastsensornavn и connectiondeviceid. Фиксированная таблица будет выглядеть так:

CREATE TABLE Lastsensordata (
lastSensorNavn varchar(500) UNIQUE NOT NULL,
lastData varchar (500) NOT NULL,
LastTime varchar(50) NOT NULL,
CONSTRAINT PK_Lastsensordata PRIMARY KEY (lastSensorNavn),
CONSTRAINT FK_LastensordataSensordata FOREIGN KEY (lastSensorNavn) REFERENCES Sensordata (ConnectionDeviceId)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...