waarde primary key wijzigen MYSQL

Status
Niet open voor verdere reacties.

LisaAlberta

Gebruiker
Lid geworden
9 aug 2012
Berichten
73
Hoi,

in een eerdere verwerking in een tabel is het een en ander misgegaan en de gegevens staan nu onder een verkeerd nummer.
Er zijn veel rijen weggeschreven onder het verkeerde nummer. Ik wil geen nieuwe invoer doen onder het juiste nummer maar het nummer aanpassen. Dit lukt mij echter niet.
De tabel heeft een heleboel kolommen waarvan de eerste 4 een samengestelde key vormen. Ik hoef maar 1 veld te veranderen, het eerste van de samengestelde key.

Stel de tabel heeft de volgende kolommen:
id, a, b, c, ... z

mijn poging tot nu toe:
CREATE TEMPORARY TABLE tmp
SELECT * FROM table WHERE id = 100;
ALTER TABLE tmp DROP primary key (id, a, b, c);
ALTER TABLE tmp modify id INT not null;
ALTER TABLE tmp modify a INT not null;
ALTER TABLE tmp modify b INT not null;
ALTER TABLE tmp modify c INT not null;
UPDATE tmp SET id = 1 WHERE id= 100;
ALTER TABLE tmp ADD primary key (id, a, b, c);
INSERT INTO table SELECT0,tmp.* FROM tmp;
DROP TEMPORARY TABLE tmp;

als ik deze queries uitvoer dan geeft ie aan dat er x regels affected zijn, maar als ik table controleer krijg ik precies dezelfde aantallen regels voor id=4793, terwijl er dat +x moeten zijn.

kunnen jullie mij helpen?
alvast bedankt,
lisa
 
Ik vermoed dat je de autoindex wil aanpassen (zeer verstandig)
doe je zo
alter table accound AUTO_INCREMENT=1654001001;
bij bovenstaande is de keylength boven de 11 cijfers. Dus hierdoor heb je geen waar id 0 geen id 1 en worden de meeste cijfers ingevuld dus elke designer zal de nodige plaats voorzien en hierdoor zullen er minder fouten ontstaan nadien.
LET OP als je elke belangerijke waarde van range aanpast dan zullen gebruikers zien dat elk accound met 16 start en elk product bvb met 399 .
Dus kunnen er logische fouten naar boven komen ook al zouden die niet mogen voorkomen. Ook zal dit bij startende bedrijven het voordeel bieden dat als het systeem nog niet volledig af is de bediende aan de telefoon zullen weten over wat zij spreken door de start van het getal.
Stel er belt iemand naar het bedrijf en de bediende kan zeggen het getal start met ... dan kan het zijn dat klant meld dat hij het niet duidelijk vindt op ticket en of vermelding en kan zonder kleerscheuren het probleem opgelost worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan