Wat is gezamenlijk SQL bewerken?

Met gezamenlijk SQL bewerken kunnen meerdere mensen tegelijk query's schrijven en beoordelen, ieder in hun eigen browser. Dat is handig om samen met een collega een query uit te werken, een migratie te beoordelen of SQL te leren, zonder het scherm te delen of query's in een chat te plakken.

Om ervoor te zorgen dat iedereen dezelfde versie heeft, worden wijzigingen als kleine aanpassingen doorgestuurd in plaats van als volledige tekst. Eén server bepaalt de volgorde waarin ze worden toegepast. Wijzigingen die op hetzelfde moment worden gemaakt, worden op elkaar afgestemd, zodat beide behouden blijven.

Beschrijving van de tool

Deze tool is een gedeelde SQL-editor met syntaxisaccentuering. Open de editor en deel de link: iedereen in de ruimte bewerkt in realtime dezelfde query's, ziet de cursors van anderen en kan met één klik voor iedereen de SQL valideren, opmaken of minificeren.

Bij het valideren wordt de SQL geparseerd met node-sql-parser. Bij het opmaken wordt elke belangrijke component (SELECT, FROM, WHERE, JOIN enzovoort) op een eigen regel gezet, zonder strings en commentaar aan te passen. Bij het minificeren wordt de query op één regel gezet. Alleen de gewijzigde regels worden vervangen, zodat tekst die anderen ondertussen typen op zijn plaats blijft.

Functies

  • Realtime bewerken - wijzigingen van iedereen verschijnen direct en worden samengevoegd wanneer mensen op hetzelfde moment typen
  • Cursors en selecties - zie waar iedereen bezig is, aan de hand van de kleur naast diens naam
  • Valideren - controleert of de SQL kan worden geparseerd en toont de melding van de parser als dat niet lukt
  • Opmaken en minificeren - zet de query component voor component op de juiste plek of perst deze op één regel, voor iedereen in de ruimte
  • Kopiëren en downloaden - bewaar een kopie van de query's als een .sql-bestand

Hoe het werkt

Wanneer de pagina wordt geopend, maakt deze een ruimte aan op de synchronisatieserver en plaatst de link ervan in de adresbalk. Iedereen die de link opent, neemt deel aan dezelfde ruimte en ziet hetzelfde document.

Elke wijziging wordt naar de server gestuurd als een korte beschrijving van wat er is veranderd - welke tekens waar zijn ingevoegd of verwijderd - in plaats van als volledige tekst. De server zet de wijzigingen van iedereen in één volgorde, verplaatst een wijziging die op basis van een oudere versie is gemaakt naar achter de wijzigingen die eerder zijn binnengekomen en stuurt het resultaat door naar alle anderen. Je eigen invoer verschijnt direct en wijzigingen van anderen worden ermee samengevoegd, zodat niemand invoer kwijtraakt wanneer twee mensen op hetzelfde moment iets bewerken.

Het document wordt alleen in het geheugen van de server bewaard zolang de ruimte open is. Als je de pagina opnieuw laadt, kom je terug in de ruimte met de tekst zoals die was. Zodra iedereen de ruimte heeft verlaten, worden de ruimte en de tekst verwijderd.

Beperkingen

  • Een ruimte biedt plaats aan maximaal 20 mensen en 100.000 tekens.
  • Na het sluiten van een ruimte wordt er niets opgeslagen. Download de tekst voordat de laatste persoon de ruimte verlaat.
  • Zeer snelle of grote wijzigingen, zoals het hele document meerdere keren achter elkaar plakken, worden geweigerd en de editor laadt de tekst van de ruimte opnieuw.
  • Als je een ruimtelink opent in een andere gezamenlijke editor (bijvoorbeeld een SQL-ruimte in de JavaScript-editor), wordt ‘Ruimte niet gevonden’ weergegeven: elke ruimte hoort bij één taal.
  • Validatie controleert alleen de syntaxis. Query's worden nooit uitgevoerd op een database.