sql >> Database >  >> RDS >> Mysql

Is er een manier om automatisch een trigger te maken bij het maken van een nieuwe tabel in MySQL?

Zoals ik heb aangegeven in je andere vraag , Ik denk dat een proces- en beveiligingsbeoordeling hier op zijn plaats is. Het is een gecontroleerde database, dus niemand (vooral externe serviceproviders) tabellen in uw database moeten maken zonder uw medeweten .

Het probleem dat u heeft, is dat u, naast de nieuwe tabel die wordt gemaakt, ook een andere tabel moet hebben gemaakt om de gecontroleerde/gewijzigde records op te slaan, die een identieke structuur zal hebben als de originele tabel met mogelijk een tijd/datum en gebruikerskolom. Als een externe provider deze tabel maakt, weten ze niet hoe ze de controletabel moeten maken, dus zelfs als u uw triggers dynamisch zou kunnen genereren, zouden ze niet werken.

Het is onmogelijk om een ​​enkele tabel te maken die alle wijzigingen bevat voor alle andere tabellen in uw database, omdat de structuur tussen tabellen onvermijdelijk verschilt.

Daarom:doe alle wijzigingsverzoeken (bijv. providers willen TableX maken, ze dienen een wijzigingsverzoek in (inclusief het SQL-script) waarin de reden voor de wijziging wordt uitgelegd) aan uzelf en/of uw team.

U voert de SQL uit op een testkopie van uw database en gebruikt dezelfde structuur om een ​​andere tabel te maken voor de gewijzigde records.

Vervolgens maakt en test u de benodigde triggers, genereert u een nieuw SQL-script om de twee tabellen en uw triggers te maken en voert u die uit op uw live database. Je geeft je provider toestemming om de nieuwe tafel te gebruiken en daar gaan ze.

Iedereen is blij. Ja, het kan wat langer duren, en ja, u zult meer werk te doen hebben, maar dat is een stuk minder werk dan nodig is om querylogboeken te proberen en te ontleden om records opnieuw te maken die al zijn gewijzigd/ verwijderd, of ontleden het binaire logboek en blijf op de hoogte van elke wijziging, en pas uw code aan wanneer het formaat van het logbestand verandert enz enz.




  1. Directe toegang tot de serverdatabase via Ajax (zonder PHP of een ander tussenproduct)

  2. Nummerreeks generator uitdaging oplossingen - Deel 3

  3. Over de voordelen van gesorteerde paden

  4. Databases maken met liquibase op een lege mysql-instantie