Reloada kan man alltid göra, så antingen får du fixa en funktion som gör att databasen inte tar emot en exakt likadan insert två gånger, eller så får du låta sidan som lägger in saker i databasen redirecta till en annan sida.
Du kan definiera att vissa kolumner i en tabell bara får innehålla unika värden.
Antingen genom att definiera en primary key eller ett unique constraint. (Det går bara att ha en primary key per tabell men man kan ha flera unique constraint.)
create table x (name varchar(10), adress varchar(30), constraint pk primary key(name))
'eller
create table x(name varchar(10),
adress varchar(30),constraint uk unique(name))
Det går också att lägga till detta i efterhand med alter table.
------------------ essentitia preter non sans multiplicandum
Det som händer om man definierar tabellen så som jag skrev och sedan försöker stoppa in en post med samma värde så kommer man att få ett fel från databashanteraren.
Ett sådant eventuellt fel måste man hantera i koden.
Alternativt så kan man lägga till kod för att kontrollera om ett värde finns i samband med att man lagrar data. (En sådan lösning fungerar för det mesta, men känns onödig då det finns funktioner för detta i DBMS och eventuella fel måste man i alla fall ta hand om. (Även om det är ett av de mest eftersatta områdena, om man tittar på de skript som postas här ;) .))
(Om man inte vill skriva SQL för att definiera sina tabeller så finns det oftast något grafiskt tjillemuck där man kan klicka för att definiera primärnycklar eller unikhet.)
------------------ essentitia preter non sans multiplicandum
259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e