Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
CREATE TABLE transfers_to_process( trx_transfer_id int, sender_country VARCHAR(3), recipient_country VARCHAR(3), origin_country VARCHAR(3), destination_country VARCHAR(3), status VARCHAR(1) DEFAULT 'N', PRIMARY KEY (trx_transfer_id) ); CREATE TABLE contries( country_iso3 VARCHAR(3), can_send VARCHAR(1), can_receive VARCHAR(1), PRIMARY KEY (country_iso3) ); CREATE TABLE blacklist( record_id INT, country VARCHAR(3), PRIMARY KEY (record_id) ); INSERT INTO blacklist VALUES (1, 'bad'); INSERT INTO contries VALUES ('out', 'Y', 'Y'), ('inn', 'Y', 'Y'), ('ams', 'Y', 'N'), ('ben', 'Y', 'Y'); INSERT INTO transfers_to_process VALUES (1, 'inn', 'out', 'ams', 'ben'), (2, NULL, NULL, NULL, NULL); CREATE OR REPLACE PROCEDURE checker(transfer INT) LANGUAGE plpgsql AS $$ DECLARE sender VARCHAR(3); DECLARE recipient VARCHAR(3); DECLARE origin VARCHAR(3); DECLARE destination VARCHAR(3); DECLARE send_s VARCHAR(3); DECLARE receive_r VARCHAR(3); BEGIN SELECT sender_country, recipient_country, origin_country, destination_country INTO sender, recipient, origin, destination FROM transfers_to_process WHERE trx_transfer_id = transfer; SELECT can_send INTO send_s FROM contries WHERE country_iso3 = sender; SELECT can_receive INTO receive_r FROM contries WHERE country_iso3 = recipient; IF NOT(origin IN (SELECT country FROM blacklist) OR destination IN (SELECT country FROM blacklist) OR send_s <> 'Y' OR receive_r <> 'Y') THEN UPDATE transfers_to_process SET status = 'P' WHERE trx_transfer_id = transfer; ELSE UPDATE transfers_to_process SET status = 'F' WHERE trx_transfer_id = transfer; END IF; END; $$; CALL checker(1); SELECT * FROM transfers_to_process; SELECT trx_transfer_id FROM transfers_to_process WHERE sender_country IS NULL;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear