webForumDet fria alternativet

Problem med primärnycklar

Databaser & SQL

7 svar · 415 visningar · startad av trexter

Medlem sedan mars 20021 889 inlägg
Frågan#1

Hur ska jag komma runt nedanstående felmeddelande (eller fel)?

Jag kan inte ändra på tabellen i databasen (SQL Server) då den redan används i ett befintligt system. ArendeStatus_Arende är primärnyckel, ArendeStatus_Status är även den "nyckelmärkt" - sekundärnyckel? Det är inte jag som skapat db:n ursprungligen så jag vet inte.

strSQL = "insert into ArendeStatus (ArendeStatus_Arende, ArendeStatus_Status, ArendeStatusDatum) VALUES("&Request.QueryString("ArendeID")&", 4, '"&Now()&"')"

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Överträdelse av PRIMARY KEY-restriktionen 'PK_ArendeStatus'. Det går inte att infoga dubblettnyckel i objektet 'ArendeStatus'.

Det bästa vore om jag kan kringgå primär nyckels-problemet kodväges.

Edit. Tilläggas skall också att jag skrivit ut SQL-strängen och att den inte ser felaktig ut, med avseende på syntax.

:)

Medlem sedan juni 200032 967 inlägg
#2

Vad är primärnyckeln i tabellen då?

Medlem sedan mars 20021 889 inlägg
#3

ArendeStatus_Arende är primärnyckel i tabellen ArendeStatus.
Den är av typen int.

Medlem sedan juni 200032 967 inlägg
#4

Då finns redan det värde du försöker stoppa in. Det du kan göra för att kringgå är att inte stoppa in saker som redan ligger där...

Medlem sedan mars 20021 889 inlägg
#5

Jo, sant. :)

Men i databasen så finns det faktiskt flera rader med samma ArendeStatus_Arende:

5006 --- 4 --- 2005-05-07
5006 --- 5 --- 2005-05-07
5006 --- 6 --- 2005-05-07

Kan man kanske lägga in flera poster "på samma gång" utan komplikationer?

Hur kan dessa värdena egentligen accepteras i databasen? ArendeStatus_Arende är "nyckelmärkt" så jag antar att det är primärnyckel (!?) men samtidigt borde det väl då inte kunna finnas flera poster med samma ID?

:q

Medlem sedan dec. 200012 464 inlägg
#6

Om 5006 är ArendeStatus_Arende så måste det ingå flera kolumner i primärnyckeln.

Medlem sedan mars 20021 889 inlägg
#7

LarsG skrev:

Om 5006 är ArendeStatus_Arende så måste det ingå flera kolumner i primärnyckeln.

Aha, så är det nog! ArendeStatus_Arende & ArendeStatus_Status verkar tillsammans som en primärnyckel.
Så såvida jag håller dessa två kolumner "sammanslagna" unika så är allt OK? :)

Medlem sedan dec. 200012 464 inlägg
#8

Jo.

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)