Ile rekordów zawierają tabele w bazie danych Firebird | AI

Categories Firebird, PracaPosted on
logo bazy danych firebird wygenerowane przez midJourney

Wracam do aktualizowania tej strony, zaczynam od tematu związanego z bazami danych Firebird. Porównując poprawność danych w dwóch bazach chciałem sprawdzić ile każda baza zawiera rekordów.

Można to sprawdzić ręcznie, można wymyślić zapytanie albo zlecić to chatowi GPT :)
Zleciłem: „Jak w bazie danych Firebird 4.0 sprawdzić ile rekordów zawiera każda z tabel?”

No i po kilku wskazówkach uzyskałem satysfakcjonującą mnie odpowiedź:

SET TERM ^ ;

CREATE OR ALTER PROCEDURE COUNT_RECORDS
RETURNS (TABLE_NAME VARCHAR(31), RECORD_COUNT INT)
AS
DECLARE VARIABLE DYNAMIC_SQL VARCHAR(255);
BEGIN
  FOR SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0 AND RDB$VIEW_SOURCE IS NULL INTO :TABLE_NAME
  DO
  BEGIN
    DYNAMIC_SQL = 'SELECT COUNT(*) FROM ' || :TABLE_NAME;
    EXECUTE STATEMENT (:DYNAMIC_SQL) INTO :RECORD_COUNT;
    SUSPEND;
  END
END^

SET TERM ; ^
 

A później już tylko:

SELECT * FROM COUNT_RECORDS;

No i mamy to:

ps.
Obrazek wyróżniający też wygenerowała sztuczna inteligencja ;)