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
-
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. -
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.
-
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. -
Hallo Uwe,
vielen Dank für den Tip, das werde ich mal probieren.
-
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 3 JahrenZuletzt aktiv
- 5Antworten
- 446Ansichten