Kezdőoldal » Számítástechnika » Programozás » Ms SQL adatbázisnál hogyan...

Ms SQL adatbázisnál hogyan lehet primary key sértést csinálni?

Figyelt kérdés
Az ügyviteli rendszer adatbázisában frissítést szerettem volna csinálni (primary key violation miatt nem sikerült) és kiderült, hogy vannak sokszorozott rekordok. Ha jól ismerem az SQL szabályokat, amíg duplikátum van nem lehet primary key-t a táblára rakni, ha van primary key, akkor nem lehet duplikált rekordokat létrehozni. Hogy jöhet létre ilyen eset?

2020. máj. 21. 20:18
 1/8 anonim ***** válasza:
Én arra tippelnék, hogy a PK több mezőből áll össze. Máshogy nem lehet ismétlődés PK mezőben.
2020. máj. 21. 20:27
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

Ha összetett a kulcs akkor is uniquenak kell lennie, csak együtt, ie. a kulcsot alkotó oszlopokban minden értékkombináció legfeljebb egyszer szerepelhet.


A kérdezőnek: mi volt az sql amit futtatni próbáltál, és milyen errort kaptál? + a tábladefiníciót is másold be. 99.9%-ig biztos vagyok benne, hogy nincsenek olyan rekordok a táblában amik megsértenék a constraint-et - most. Csak a te updated akart valami olyan csinálni ami duplikációt okozott volna.

2020. máj. 21. 20:46
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

"ha van primary key, akkor nem lehet duplikált rekordokat létrehozni"

Lehet, hogy mikor bekerültek, még nem az volt a primary key. Nem lehet, hogy a frissítés most akarja PK-ként beállítani az adott mezőt/mezőket?

2020. máj. 21. 22:08
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Én magát a kérdést nem értem, mert te magad leírtad hogyan jött létre a violation: Olyan primary key-t próbáltál használni, ami már létezik.


A megoldás legalább a primary key átgondolása, de a violation már alapból valószínűsíti, hogy tervezési hibák vannak benne, tehát az igazi az lenne, ha az egész szerkezetet átgondolnátok.

2020. máj. 21. 23:17
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
#4 A kérdés inkább azt vázolta fel, hogy a táblában már eleve duplikált primary key szerepel, és emaitt nem tudta update-elni. Ez viszont nem kéne, hogy lehetséges legyen. Kérdező, mindenképp több infó kellene a dologról, mert ez így sántít.
2020. máj. 22. 02:08
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
A gond az, hogy nem saját az update. Közben megoldódott. Az ügyviteli rendszerben volt hiba. (Előbb próbált importálni, utána törölni az elavult rekordot). Köszönöm a válaszokat. (A tábla állapotát nem értem, de már nem is érdekes a duplikátumokat törölték)
2020. máj. 22. 10:38
 7/8 anonim ***** válasza:

"kiderült, hogy vannak sokszorozott rekordok"

Ezek szerint ez nem igaz?

"már nem is érdekes a duplikátumokat törölték"

Öö... Na most akkor valóban kerültek dupla kulcsok a rendszerbe? És nem érdekes??! :))

2020. máj. 22. 12:51
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:

Voltak olyan rekordok, amelyek minden mezője megegyezett (ha jól emlákszem három pár). Ezért tettem fel a kérdést. Ez nyilvánvalóan sértette a primary keyt. (Nost megnéztem: A primary )

Pillanatnyilag a primary key három mezőt tartalmaz Cikkszam, Telephely, Cikkazon

(Az adatbázisban nincs külön védelem, de a Cikkazon egy számláló, ami minden cikkszám létrehozáskor (a cikkszám önmagában nem unique) egyel nő)

Mivel az én feladatom az SQL szerver üzemeltetéséig terjed, "csak szakmai kíváncsiság", hogy hogyan lehettek csont azonos rekordok, amit a primerí keyt teljesen nyilvánvalóan sértették.

Az esetet úgy bukott ki, hogy nem lehetett a cikktörzset frissíteni. (ez naponta többször megy scriptből). Az árfrissítő file nem tartalmazott duplikátumot. Az ügyviteli program írói meg első körben széttárták a karjukat. Ezért néztem meg a cikktörzs táblát és "találtam benne érdekességet"

2020. máj. 22. 13:58

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!