achtergrond:
Ik probeer de agendafunctie van een soort boekhoudprogramma te 'maken' (als in 'repareren'). Hoewel de oorspronkelijke maker wel rekening hield met meerdere gebruikers, is die ergens vergeten om een primary key functie op die gebruiker te zetten.
Kortom, op dit moment is een agenda-item uniek op de datum en de tijd, maar dit moet veranderen naar de datum, tijd EN gebruiker.
gevonden oplossingen
Na een stuk aanprutsen met proberen de pk te veranderen en het not null maken van de betreffende kolom mbv deze procedure, vond ik deze faq.
Hieruit blijkt dat het niet mogelijk is de primary key te veranderen zonder de tabel opnieuw aan te maken. Dezelfde informatie vind ik in [rml][ SQL] Primary Key wijzigen[/rml] weer terug. Onderaan dat topic geeft ACM al aan hoe het moet:
Er blijken 4 dependencies op deze (agenda) tabel te staan (waarvan 3 op die gebruiker kolom waar het om gaat). Met handmatig zoeken heb ik een aantal procedures gevonden die hierop betrekking hebben.
Kan ik zonder die procedures te verwijderen oid die dependencies omzeilen?
Ik probeer de agendafunctie van een soort boekhoudprogramma te 'maken' (als in 'repareren'). Hoewel de oorspronkelijke maker wel rekening hield met meerdere gebruikers, is die ergens vergeten om een primary key functie op die gebruiker te zetten.
Kortom, op dit moment is een agenda-item uniek op de datum en de tijd, maar dit moet veranderen naar de datum, tijd EN gebruiker.
gevonden oplossingen
Na een stuk aanprutsen met proberen de pk te veranderen en het not null maken van de betreffende kolom mbv deze procedure, vond ik deze faq.
Hieruit blijkt dat het niet mogelijk is de primary key te veranderen zonder de tabel opnieuw aan te maken. Dezelfde informatie vind ik in [rml][ SQL] Primary Key wijzigen[/rml] weer terug. Onderaan dat topic geeft ACM al aan hoe het moet:
uiteindelijk probleem:create table new_tabel (...);
insert into new_tabel (velden....) select veldnamen from tabel;
drop table tabel;
alter table new_tabel rename to tabel;
Er blijken 4 dependencies op deze (agenda) tabel te staan (waarvan 3 op die gebruiker kolom waar het om gaat). Met handmatig zoeken heb ik een aantal procedures gevonden die hierop betrekking hebben.
Kan ik zonder die procedures te verwijderen oid die dependencies omzeilen?
Localhost is where the heart is