-- https://www.phpmyadmin.net/
--
-- Tempo de geração: 06-Mar-2026 às 19:19
-- Versão do servidor: 10.4.24-MariaDB
-- versão do PHP: 8.1.6

START TRANSACTION;



--
-- Banco de dados: `leiturapedrokarol`
--

DELIMITER $$
--
-- Procedimentos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `verificaativopedroekarol` (IN `$idmac` VARCHAR(17), OUT `$ativo` BOOLEAN)   BEGIN
select ativo into $ativo from macpedroekarol
where idmacpedroekarol=$idmac;

end$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitepedroekarol` (IN `$idmac` VARCHAR(17), OUT `$limite` INT, IN `$contador` INT)   BEGIN
select limite into $limite
from macpedrokarol
where idmacpedrokarol=$idmac;
select contador into $contador
from macpedrokarol
where idmacpedrokarol=$idmac;
end$$

DELIMITER ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `leiturapedrokarol`
--

CREATE TABLE `leiturapedrokarol` (
  `idleiturapedrokarol` int(10) UNSIGNED NOT NULL,
  `macpedrokarol_idmacpedrokarol` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `umidade` double DEFAULT NULL,
  `temperatura` double DEFAULT NULL,
  `luz` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Acionadores `leiturapedrokarol`
--
DELIMITER $$
CREATE TRIGGER `tgdeleteleiturapedrokarol` AFTER DELETE ON `leiturapedrokarol` FOR EACH ROW BEGIN
UPDATE	macpedrokarol
SET		contador=contador-1
WHERE	idmacpedrokarol=old.macpedrokarol_idmacpedrokarol;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsertleiturapedrokarol` AFTER INSERT ON `leiturapedrokarol` FOR EACH ROW BEGIN
UPDATE 	macpedrokarol
SET		contador=contador+1
WHERE	idmacpedrokarol=new.macpedrokarol_idmacpedrokarol;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificalimite` BEFORE INSERT ON `leiturapedrokarol` FOR EACH ROW BEGIN
CALL
verificalimitepedrokarol(new.macpedrokarol_idmacpedrokarol,@limite,@contador);
if @contador>@limite
then signal sqlstate "45000"
SET MESSAGE_TEXT = 'LIMITE DE GRAVAÇÕES ATINGIDO';
 END IF;
 
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `triggerativopedroekarol` BEFORE INSERT ON `leiturapedrokarol` FOR EACH ROW BEGIN call verificaativopedroekarol(new.macpedrokarol_idmacpedrokarol,@$ativo);
if @$ativo=0
then signal sqlstate'45000'set MESSAGE_TEXT= 'placainativa';
end if;
end
$$
DELIMITER ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `macpedrokarol`
--

CREATE TABLE `macpedrokarol` (
  `idmacpedrokarol` varchar(17) NOT NULL,
  `nome` varchar(35) DEFAULT NULL,
  `contador` int(10) UNSIGNED DEFAULT 0,
  `ativo` tinyint(1) DEFAULT NULL,
  `limite` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `macpedrokarol`
--

INSERT INTO `macpedrokarol` (`idmacpedrokarol`, `nome`, `contador`, `ativo`, `limite`) VALUES
('aa', 'Placa teste', 0, NULL, NULL);

--
-- Índices para tabelas despejadas
--

--
-- Índices para tabela `leiturapedrokarol`
--
ALTER TABLE `leiturapedrokarol`
  ADD PRIMARY KEY (`idleiturapedrokarol`),
  ADD KEY `leiturapedrokarol_FKIndex1` (`macpedrokarol_idmacpedrokarol`);

--
-- Índices para tabela `macpedrokarol`
--
ALTER TABLE `macpedrokarol`
  ADD PRIMARY KEY (`idmacpedrokarol`);

--
-- AUTO_INCREMENT de tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `leiturapedrokarol`
--
ALTER TABLE `leiturapedrokarol`
  MODIFY `idleiturapedrokarol` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- Restrições para despejos de tabelas
--

--
-- Limitadores para a tabela `leiturapedrokarol`
--
ALTER TABLE `leiturapedrokarol`
  ADD CONSTRAINT `leiturapedrokarol_ibfk_1` FOREIGN KEY (`macpedrokarol_idmacpedrokarol`) REFERENCES `macpedrokarol` (`idmacpedrokarol`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

