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
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