Terugdraaien naar SQL-savepoints
Draai de tweede invoeging terug naar een SQL-savepoint met de eerste nog zichtbaar binnen de transactie.
CREATE TEMP TABLE entries (id INTEGER);
BEGIN;
INSERT INTO entries VALUES (1);
SAVEPOINT item;
INSERT INTO entries VALUES (2);
ROLLBACK TO item;
RELEASE item;
SELECT id FROM entries;
ROLLBACK;- Project
- Geef het savepoint vrij en draai de buitenste transactie terug, zodat blijkt dat vrijgeven de resterende rij niet vastlegde.
- Controleer vóór het toepassen
- Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
- Modellen
- Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
CREATE TEMP TABLE entries (id INTEGER);
BEGIN;
INSERT INTO entries VALUES (1);
SAVEPOINT item;
INSERT INTO entries VALUES (2);
ROLLBACK TO item;
RELEASE item;
SELECT id FROM entries;
ROLLBACK;Beoordeel het foutpad voordat je transactiecode wijzigt
Transactiecode verdient een beoordeling die zowel geslaagd werk als gedeeltelijke mislukking volgt. Savepoint Arc is een Windows-AI-codeomgeving om dat gesprek naast de projectbestanden te voeren. Open de applicatiemap en vraag het verbonden model de SQL-reeks, de aanroeper en de verwachte uitkomst te bekijken voordat het een wijziging voorstelt.
Bij een importbewerking kan een nuttig verzoek onderzoeken of één afgewezen item de volledige batch moet terugdraaien of alleen werk na een savepoint. Lever de relevante instructies en leg het vereiste applicatiebeleid uit. Vraag de assistent elke voorgestelde rollback of release met dat beleid te verbinden in plaats van het uit de aanwezigheid van een transactie af te leiden.
Test het resulterende voorstel aan waarneembare databasetoestand. Voer in een wegwerpbare testomgeving het geslaagde geval en een fout tussen instructies uit. Bekijk vervolgens welke rijen zichtbaar blijven en wat de aanroeper ontvangt. Beoordeel zowel applicatiecode als SQL: verkeerde uitzonderingsafhandeling kan een verder verstandige transactiereeks ondermijnen.
Kies een ondersteund OpenAI-compatibel of Anthropic-endpoint voor het gesprek. Een abliterated AI-model is alleen selecteerbaar waar je ingestelde dienst dit levert, met de daar bepaalde beperkingen en mogelijkheden. Savepoint Arc biedt de omgeving voor het onderzoeken van wijzigingen; databasegedrag moet nog steeds tegen jouw database-engine en project worden geverifieerd.
Vragen over transactiegrenzen
- Wat moet ik uitleggen over een gedeeltelijk mislukte import?
Geef aan of eerder geaccepteerde items moeten blijven, of de hele import atomair moet zijn en welke fout de aanroeper moet zien. Die beslissingen bepalen de bedoelde grens; het model mag transactiebeleid niet alleen uit SQL-syntaxis kiezen.
- Vervangt een savepointtest controle van de applicatieaanroeper?
Nee. De aanroeper kan opnieuw proberen, een uitzondering opvangen of na de SQL-reeks extra instructies uitvoeren. Neem die code op in de beoordeling en verifieer de reactie op fouten, vooral als de definitieve commit buiten de getoonde functie gebeurt.
- Waar moet ik een voorgestelde rollbackwijziging proberen?
Gebruik een wegwerpbare testdatabase met representatieve testgegevens en hetzelfde enginegedrag waarvan je project afhankelijk is. Bekijk de resulterende rijen en transactie-uitkomst. Beschouw een modeluitleg niet als bewijs dat instructies succesvol zijn uitgevoerd.
- Moet ik herhaallogica toevoegen wanneer ik savepoints wijzig?
Alleen met een expliciete eis en een beoordeling of de bewerking veilig herhaald kan worden. Houd herhaalpogingen waar mogelijk gescheiden van een grenscorrectie, zodat het effect van elke wijziging begrijpelijk en testbaar blijft.
Savepoint Arc · Bijgewerkt 2026-10-25