block-explorer/sql/dbg.sql
2017-06-15 18:22:56 +01:00

52 lines
1.3 KiB
SQL

DELIMITER //
CREATE PROCEDURE DeleteBlock (
IN BlockId BIGINT
)
BEGIN
START TRANSACTION;
DELETE FROM InputsAddresses WHERE InputId IN (
SELECT Id FROM Inputs WHERE TransactionId IN (
SELECT Id FROM Transactions WHERE BlockHash IN (
SELECT Hash FROM Blocks WHERE Id = BlockId
)
)
);
DELETE FROM OutputsAddresses WHERE OutputId IN (
SELECT Id FROM Outputs WHERE TransactionId IN (
SELECT Id FROM Transactions WHERE BlockHash IN (
SELECT Hash FROM Blocks WHERE Id = BlockId
)
)
);
DELETE FROM Inputs WHERE TransactionId IN (
SELECT Id FROM Transactions WHERE BlockHash IN (
SELECT Hash FROM Blocks WHERE Id = BlockId
)
);
DELETE FROM Outputs WHERE TransactionId IN (
SELECT Id FROM Transactions WHERE BlockHash IN (
SELECT Hash FROM Blocks WHERE Id = BlockId
)
);
DELETE FROM TransactionsAddresses WHERE TransactionId IN (
SELECT Id FROM Transactions WHERE BlockHash IN (
SELECT Hash FROM Blocks WHERE Id = BlockId
)
);
DELETE FROM Transactions WHERE BlockHash IN (
SELECT Hash FROM Blocks WHERE Id = BlockId
);
DELETE FROM Blocks WHERE Id = BlockId;
COMMIT;
END//
DELIMITER ;