0

API Tabelle leeren

Hallo,

ich habe eine Tabelle die ich aus einer anderen Datenbank via dem API fülle. Es handelt sich um etwas über 10'000 Datensätze. Das Füllen geht problemlos und relativ schnell über ein PHP Script. Da ich das aber jeden Tag updaten muss, sollte ich alle Datensätze löschen können um sie wieder neu zu importieren. Das Löschen ist aber sehr langsam und läuft ständig in einen Timeout da jeder Datensatz einzeln gelöscht werden muss. Gibt es eine Möglichkeit via REST API die ganze Tabelle zu leeren?

5 Antworten

null
    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo
    Welche Tabelle soll geleert werden?
    Die Ninox-Tabelle oder die Tabelle, von denen du die Daten holst?
    Wenn du die Ninox-Tabelle löschen möchtest, hilft die Funktion 'delete select 'Name Ninox-TABELLE'
    Damit löschst du ALLE Datensätze in einem Rutsch. Die Datensatz-ID wird jedoch bei neuem Import nicht zurück gesetzt und zählt ausgehend vom letzten Record weiter.

    • LIEmobil
    • Jurgen_Frick
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Die Ninox-Tabelle... Auslöser ist ein PHP Script, das via API kommuniziert. Das REST API kann das eben nicht, zumindest nicht dokumentiert. Wie kann ich via API die Ninox Funktion auslösen? Die ID's sind mir egal.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Wolfgang

    Ich habe es selbst noch nicht gemacht, aber mit einem query kann man Ninox Script ausführen.
    Der Aufruf sollte wie folgt aussehen: POST https://api.ninoxdb.de/v1/teams/:teamid/databases/:databaseid/query
    ContentType ist application/json
    Body: {"query": delete select TabellenName}
    Kann sein, dass der Body URI-Encodiert werden muss wenn Sonderzeichen im Tabellennamen enthalten sind.
    Wie gesagt, ich habe es selbst noch nicht gemacht und kann keine Garantie, sondern nur einen Denkanstoss geben.

    • LIEmobil
    • Jurgen_Frick
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    vielen Dank für den Tip, das werde ich mal probieren.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Wolfgang
    Falls du noch keine Lösung gefunden hast, probier mal folgendes:
    let vquery := urlEncode("delete select Tabellenname");
    let vUrl := "https://api.ninoxdb.de/v1/teams/TEAM-ID/databases/DATABASE-ID/query?query=" + vquery;
    let vHeaders := "Bearer APIKey";
    http("POST", vUrl, {
    Authorization: vHeaders
    }, null);

    Wenn du die Antwort des API-Calls irgendwo angezeigt bekommen möchtest, kannst du den http-Call in eine Variable packen und diese weiter verarbeiten.

Content aside

  • Status Answered
  • vor 2 JahrenZuletzt aktiv
  • 5Antworten
  • 435Ansichten