Concurrency (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 52: | Regel 52: | ||
select | select | ||
create_time | create_time | ||
+ | from | ||
+ | information_schema.tables | ||
+ | where | ||
+ | table_schema="dwh_org" | ||
+ | and | ||
+ | table_name="sku_b2"; | ||
+ | </pre> | ||
+ | |||
+ | == Tabel die aangepast is == | ||
+ | |||
+ | In bovenstaande tabel heb ik een record aangepast. En dat is te detecteren: | ||
+ | |||
+ | <pre> | ||
+ | select | ||
+ | create_time, | ||
+ | update_time | ||
from | from | ||
information_schema.tables | information_schema.tables |
Huidige versie van 22 jan 2021 om 11:07
Met concurrency bedoel ik hier: Hoe weet ik welke versie van een entiteit (bv. een tabel) de juiste is?
Voorbeeld
- Opgeleverde tabellen staan in database dwh_org
- Voor een project heb ik een bijbehorende projectdatabase, genaamd eansku
- In eansku heb ik een tabel sku_b2 gecreëerd. Na een tijdje is deze tabel gepushed naar dwh_org
- Nu, een maandje later wil ik verder werken met tabel sku_b2. Ik weet alleen niet zeker of ik tussentijd in eansku wijzigingen heb aangebracht. Of dat sku_b2 via een andere projectdatabase is veranderd op dwh_org. Hoe kan ik dat achterhalen?
information_schema
Systeemdatabase information_schema
beschikt over enige relevante informatie:
update_time
Dit werkt, maar alleen als records daadwerkelijk zijn aangepast. Niet als een complete tabel is aangemaakt (bv. door push):
select update_time # Steeds leeg? from information_schema.tables where table_schema="eansku" and table_name="sku_b2";
create_time
Dit werkt beter:
select create_time from information_schema.tables where table_schema="eansku" and table_name="sku_b2";
Tabel die gepushed is
Dit werkt: De gepushte tabel heeft als create_time de tijd van pushen.
use eansku; call push_table("sku_b2", "sku_b2"); # Push this table to dwh_org select create_time from information_schema.tables where table_schema="dwh_org" and table_name="sku_b2";
Tabel die aangepast is
In bovenstaande tabel heb ik een record aangepast. En dat is te detecteren:
select create_time, update_time from information_schema.tables where table_schema="dwh_org" and table_name="sku_b2";