Hallo, ik heb een vraag. Sinds kort kan ik mijn tabelgegevens niet meer aanpassen in Phpmyadmin. Dit is sinds een maandje zo, voorheen heb ik het altijd zonder problemen kunnen aanpassen..
Nu krijg ik echter de volgende melding:
Deze tabel bevat geen unieke kolom. Functies zoals rasterbewerkingen, checkboxen, Bewerken, Kopiëren en Verwijderen, zijn niet beschikbaar.
en is het niet mogelijk om mijn tabellen aan te passen.
Wat moet ik doen om er voor te zorgen dat ik mijn tabellen in PHPMYADMIN wel kan aanpassen? De gegevens in de tabel heb ik het dan over.
De melding zegt het al, de tabel heeft geen primary key.
Het simpelste is om een nieuwe tabel te maken met een auto increment primary key, en daarnaast dezelfde kolommen als in de tabel die niet meer werkt.
Daarna kan je de gegevens van de ene naar de andere tabel overhevelen met:
INSERT INTO nieuwe_tabel (kolom_a, kolom_b) SELECT kolom_a, kolom_b FROM oude_tabel
Daarna kan je eventueel de oude tabel verwijderen en de nieuwe hernoemen.
De melding zegt het al, de tabel heeft geen primary key.
Het simpelste is om een nieuwe tabel te maken met een auto increment primary key, en daarnaast dezelfde kolommen als in de tabel die niet meer werkt.
Daarna kan je de gegevens van de ene naar de andere tabel overhevelen met:
INSERT INTO nieuwe_tabel (kolom_a, kolom_b) SELECT kolom_a, kolom_b FROM oude_tabel
Daarna kan je eventueel de oude tabel verwijderen en de nieuwe hernoemen.
Dank voor je bericht.
Maar hoef voeg ik een auto increment primary key toe?
En wat vreemd dat het sinds kort niet meer werkt..
Als je niet weet hoe je een primary key kolom in een tabel zet dan mis je iets elementairs in het opzetten van een database model.
Zie http://wiki.phpmyadmin.net/pma/primary_key
Als je niet weet hoe je een primary key kolom in een tabel zet dan mis je iets elementairs in het opzetten van een database model.
Zie http://wiki.phpmyadmin.net/pma/primary_key
Ik weet niet waar ik moet kijken. Ik heb namelijk nog nooit zelf een tabel aangemaakt maar altijd SQL toegevoegd wat overigens altijd werkte.
Moet ik aan mijn SQL iets veranderen?
CREATE TABLE IF NOT EXISTS `naam` (
`title` text COLLATE utf8_unicode_ci NOT NULL,
`waarde` double NOT NULL,
`points` double NOT NULL,
`img` text COLLATE utf8_unicode_ci NOT NULL,
`type` text COLLATE utf8_unicode_ci NOT NULL,
`desc` text COLLATE utf8_unicode_ci NOT NULL,
`name` text COLLATE utf8_unicode_ci NOT NULL,
`hoeveelheid` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Na upgrade naar de nieuwe LTS Ubuntu heb ik ook een nieuwe versie van PHPMyAdmin gekregen, en liep dus tegen hetzelfde probleem aan.
Ik ervaar dit toch als de wereld op zijn kop!
Ik gebruik MySQL als backend voor een website. Goed een aantal TABLES (denk aan gebruikers e.d.) heeft natuurlijk een unieke ID. Maar er zijn ook zeker TABLE's die dit niet nodig hebben.
Tenminste voor het primaire functioneren van de website is dit absoluut niet nodig. En dit geeft alleen maar extra overhead.
Nu zou ik dus voor alle TABLE's waar dit niet nodig is toch een column moet toevoegen alleen omdat PHPMyAdmin dat nodig heeft om te kunnen editten.
Daar komt bij. Ik gebruik al jaren PHPMyAdmin om simpel web-based enkele dingen te tweaken in databases, en vorige versies hadden deze beperking gewoon niet.
Ik kan dit dus oplossen door een oude versie van PHPAdmin te blijven gebruiken die mij wel gewoon toestaat deze TABLE's te bewerken. Maar de nieuwe versie is volledig onbruikbaar hiervoor?!?!?
Het ligt ongetwijfeld aan mij, maar ik begrijp hier niets van.
Als iemand de logica aan mij kan uitleggen, graag.
Dat is een reden dat ik PMA heb laten vallen, en bij voorkeur HeidiSQL gebruik.
Die werkt direct met MySQL zonder een weg van PHP en Apache er tussendoor.
Na upgrade naar de nieuwe LTS Ubuntu heb ik ook een nieuwe versie van PHPMyAdmin gekregen, en liep dus tegen hetzelfde probleem aan.
Ik ervaar dit toch als de wereld op zijn kop!
Ik gebruik MySQL als backend voor een website. Goed een aantal TABLES (denk aan gebruikers e.d.) heeft natuurlijk een unieke ID. Maar er zijn ook zeker TABLE's die dit niet nodig hebben.
Tenminste voor het primaire functioneren van de website is dit absoluut niet nodig. En dit geeft alleen maar extra overhead.
Nu zou ik dus voor alle TABLE's waar dit niet nodig is toch een column moet toevoegen alleen omdat PHPMyAdmin dat nodig heeft om te kunnen editten.
Daar komt bij. Ik gebruik al jaren PHPMyAdmin om simpel web-based enkele dingen te tweaken in databases, en vorige versies hadden deze beperking gewoon niet.
Ik kan dit dus oplossen door een oude versie van PHPAdmin te blijven gebruiken die mij wel gewoon toestaat deze TABLE's te bewerken. Maar de nieuwe versie is volledig onbruikbaar hiervoor?!?!?
Het ligt ongetwijfeld aan mij, maar ik begrijp hier niets van.
Als iemand de logica aan mij kan uitleggen, graag.
Een primary key is vereist om goed te kunnen werken met tabellen.
Zonder kan je update en delete inconsistenties krijgen.
Maar een primary key is niet per definitie een auto-increment kolom, het is een unieke index, en kan heel goed over meerdere kolommen.
Maar omdat dat vaak lastiger te beheren is, of uit veiligheids overwegingen, kiest men vaak voor een AI.
Dit geeft geen extra overhead, sterker nog, als je over meerdere kolommen moet gaan filteren heb je meer indexen nodig.