SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share
Donate
Blog
Popular
Donate
A
A
A
Share
Blog
Popular
SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code.
You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.
SQL code:
Upload
Copy
Format
Clear
CREATE OR REPLACE PROCEDURE recalculate_subscription_price(pgameid BIGINT, pold_stake_price BIGINT, pold_plus_price BIGINT, pnew_stake_price BIGINT, pnew_plus_price BIGINT, do_update BOOLEAN) LANGUAGE SQL BEGIN DECLARE sub CURSOR WITH RETURN FOR SELECT g.name AS main_game, g.iddggame AS gameid, s.iddgsubscription, t.wageramount AS old_wager_amount, b.modifier AS is_plus, COALESCE(b.picksystem, '0') AS picksystem, b.boardstake, COUNT(1) AS nr_of_boards, b.boardstake / pold_stake_price AS stakes, (pnew_stake_price * (b.boardstake / pold_stake_price)) AS new_board_stake, (pnew_stake_price + (CASE WHEN b.modifier = 'true' THEN pnew_plus_price ELSE 0 END)) * (b.boardstake / pold_stake_price) * COUNT(1) * 1 AS new_wager_amount FROM gis.DGSUBSCRIPTION S INNER JOIN gis.DGGAME G ON G.IDDGGAME = S.IDDGGAME INNER JOIN gis.DGBOARDSTACK BS ON BS.IDDGSUBSCRIPTION = S.IDDGSUBSCRIPTION INNER JOIN gis.DGBOARD B ON B.IDDGBOARDSTACK = BS.IDDGBOARDSTACK INNER JOIN gis.DGsubs_WAGER_TEMPLATE T ON T.IDDGSUBSCRIPTION = S.IDDGSUBSCRIPTION WHERE S.STATE = 'ACTIVE' AND S.IDDGGAME = pgameid GROUP BY G.IDDGGAME, G.NAME, S.IDDGSUBSCRIPTION, S.PLAYERID, T.wageramount, B.MODIFIER, B.PICKSYSTEM, B.BOARDSTAKE HAVING t.wageramount = (pold_stake_price + (CASE WHEN b.modifier = 'true' THEN pold_plus_price ELSE 0 END)) * (b.boardstake / pold_stake_price) * COUNT(1) * 1 ORDER BY t.wageramount DESC, S.IDDGSUBSCRIPTION DESC, MAIN_GAME; DECLARE subid BIGINT; DECLARE old_wagertemplate BIGINT; DECLARE new_wagertemplate BIGINT; DECLARE old_boardstake BIGINT; DECLARE new_boardstake BIGINT; DECLARE i INT; IF do_update THEN SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT = 'ALL CHANGES ARE COMMITTED TO DATABASE'; ELSE SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT = 'dry run only, no actual updates will be done'; END IF; OPEN sub; FETCH FROM sub INTO subid, old_wagertemplate, new_wagertemplate, old_boardstake, new_boardstake, i; WHILE (SQLSTATE = '00000') DO IF do_update THEN UPDATE gis.dgsubs_wager_template uswt SET wageramount = new_wagertemplate WHERE uswt.iddgsubscription = subid AND uswt.iddggame = pgameid; UPDATE gis.dgboard db SET boardstake = new_boardstake WHERE db.iddgboardstack IN (SELECT dbs.iddgboardstack FROM gis.dgboardstack dbs WHERE iddgsubscription = subid); END IF; INSERT INTO public.sub_price_change_log (gameid, subscription_id, old_wageramount, new_wageramount, old_boardstake, new_boardstake) VALUES (pgameid, subid, old_wagertemplate, new_wagertemplate, old_boardstake, new_boardstake); IF i % 1000 = 0 THEN COMMIT; END IF; FETCH FROM sub INTO subid, old_wagertemplate, new_wagertemplate, old_boardstake, new_boardstake, i; END WHILE; COMMIT; END;
SQL
Server:
MariaDB 11.4
MariaDB 11.5
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
MySQL 5.7
MySQL 5.7 Sakila (ReadOnly)
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
SQLite 3
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 11
PostgreSQL 12
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear