sql >> Database >  >> RDS >> Mysql

Is het mogelijk om de NIEUWE en de OUDE tabellen van een trigger door te geven aan een procedure in MySQL?

U kunt elk veld expliciet doorgeven:

CALL logChanges(OLD.colA, OLD.colB, NEW.colA, NEW.colB);

Of als logChanges voldoende generiek moet zijn om dergelijke aanroepen van verschillende tabellen aan te kunnen, zou men de veldwaarden kunnen samenvoegen tot een enkele tekenreeks met behulp van een geschikt scheidingsteken (bijv. de eenheidsscheidingsteken ):

CALL logChanges(CONCAT_WS(CHAR(31), OLD.colA, old.colB),
                CONCAT_WS(CHAR(31), NEW.colA, NEW.colB));

Of als datatypes behouden moeten blijven, kan men de records invoegen in een tijdelijk bestand van waaruit logChanges leest.



  1. SQLite CHECK-beperkingen

  2. Mogelijke PDOException-fouten (MySQL 5)?

  3. Kan de 'libpq-fe.h header niet vinden bij het installeren van pg gem

  4. GROUP BY zonder aggregatiefunctie