SQLite

Hur man använder SQLite Autoincrement

Hur man använder SQLite Autoincrement
SQLite stöder nyckelordet AUTOINCREMENT som automatiskt ökar ett värde för det angivna fältet i en databastabell. När du skapar en databastabell får du som standard ett 64-bitars signerat heltal som representerar raden IP eller ROWID. Det här alternativet är tillgängligt som standard om det inte uttryckligen anges med UTAN ROWID-nyckelord.

ROWID-kolumnen ökas automatiskt när du lägger till data i tabellen. Tänk till exempel på frågan nedan för att skapa och lägga till data.

SKAPA TABELL "demo" (
"namn" TEXT,
"roll" TEXT
);

Lägg sedan till data i den skapade tabellen ovan med hjälp av frågan nedan:

INSÄTTA I "huvud"."demo" ("namn", "roll") VÄRDEN ('Mari Clovis', 'webbutvecklare');
INSÄTTA I "huvud"."demo" ("namn", "roll") VÄRDEN ('Terhi Antonije', 'Hardware Engineer');

Nu:

Om vi ​​utför en SELECT-fråga på bordet får vi en tabell som visas nedan.

VÄLJ oid, namn, roll FRÅN demo;

Som framgår av utdata ovan skapar SQLite automatiskt ett fält (ROWID) som automatiskt ökas när data läggs till i tabellen.

Du kan dock uttryckligen ange rad-id när du skapar en tabell med nyckelordet AUTOINCREMENT. Låt oss diskutera hur man gör detta i den här handledningen.

Hur man använder AUTOINCREMENT

För att börja använda nyckelordet AUTOINCREMENT bör det angivna fältet endast acceptera INTEGER-värden. Den allmänna syntaxen för nyckelordet AUTOINCREMENT är som:

SKAPA TABELL "demo2" (
"Fält1" INTEGER,
PRIMÄR NYCKEL (AUTOINCREMENT "Field1")
);

Tänk till exempel på tabellen nedan:

SKAPA TABELL "användare" (
"Nej" INTEGER,
"Namn" TEXT,
"Ålder" INTEGER,
"Språk" TEXT,
PRIMÄR KEY ("Nej" AUTOINCREMENT)
);

Låt oss lägga till data i tabellen med hjälp av frågan nedan:

INSÄTTA I "huvud"."användare" ("Nej", "Namn", "Ålder", "Språk") VÄRDEN ('1', 'Danuše Bob', '23', 'Python, Java');
INSÄTTA I "huvud"."användare" ("Nej", "Namn", "Ålder", "Språk") VÄRDEN ('2', 'Glaucia Martha', '30', 'JavaScript, Ruby on Rails');
INSÄTTA I "huvud"."användare" ("Nej", "Namn", "Ålder", "Språk") VÄRDEN ('3', 'Tindra Alona', '25', 'C ++, Bash');
INSÄTTA I "huvud"."användare" ("Nej", "Namn", "Ålder", "Språk") VÄRDEN ('4', 'Yakau Kelley', '33', 'Java, Mathematica, Python');

När du har utfört ovanstående fråga får du en tabell med data som visas nedan:

Du kommer att notera att värdena i fältet Nej ökas automatiskt. Du kan också ange position eller plats för de data du vill lägga till. Om du till exempel vill lägga till data vid No (id) 1000 anger du värdet som visas i frågan nedan:

INSÄTTA I "huvud"."användare" ("Nej", "Namn", "Ålder", "Språk") VÄRDEN ('1000', 'Chestirad Orval', '22', 'Java, Matlab, C #);

Om du frågar efter data i tabellen ovan ser du en tabell som visas nedan:

VÄLJ * FRÅN användare;

Som du kan se från utdata ovan, ligger de data vi införde på position 1000 enligt specifikation. Det maximala värdet kan vara värdet 9223372036854775807. Om du försöker lägga till mer data medan den har nått det maximala värdet kommer SQLite att leta efter ett oanvänt värde och infoga data på den platsen.

NOTERA: SQLite rekommenderar att du använder AUTOINCREMENT eftersom du kan lära dig mer i resursen nedan

https: // sqlite.org / autoinc.html

Slutsats

Denna handledning har beskrivit hur man använder nyckelordet SQL autoincrement på olika fält. Innan du bestämmer dig för när du ska använda nyckelordet AUTOINCREMENT, se till att du läser dess dokumentation, funktioner och begränsningar.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...