Seite 1 von 2
group_id problem
Verfasst: 15.05.2005 12:20
von macnack
Hallo
ich habe folgendes Problem:
ich kann manche Benutzer nicht zu Moderatoren machen?
Das Forum hat ca. 1200 Benutzer,
mit den ersten ca 650 ist alles kein Problem,
aber allen anderen Benutzern wurde evtl. nach irgendeinem unvollständigen update die group_id 0 zugeordnet.
Wenn ich nun einen da von zum Mod mache, sind sie alle mods...
Wie kann ich das beheben?
"Reset auto increment values" mit Database Maintenance bringt folgende Fehlermeldung
Code: Alles auswählen
phpbb_groups: table updated
Fehler: Couldn't alter table!
SQL Error : 1075 Incorrect table definition; There can only be one auto column and it must be defined as a key
ALTER IGNORE TABLE phpbb_groups MODIFY group_id mediumint(8) NOT NULL auto_increment
Line : 503
File : /www/htdocs/xxx/phpBB2/includes/functions_dbmtnc.php
Schon mal danke im voraus
Verfasst: 15.05.2005 12:46
von PhilippK
Poste doch mal die aktuelle Struktur der Tabelle. Am besten exportierst du dazu die Struktur der Tabelle in phpMyAdmin und postest den SQL-Befehl hier.
Gruß, Philipp
Verfasst: 15.05.2005 19:04
von macnack
Habe jetzt nur Struktur exportiert alle anderen Häckchen ( z.B. AUTO_INCREMENT-Wert hinzufügen) rausgenommen.
Code: Alles auswählen
-- Tabellenstruktur für Tabelle `phpbb_groups`
--
CREATE TABLE phpbb_groups (
group_id mediumint(8) NOT NULL default '0',
group_type tinyint(4) NOT NULL default '1',
group_name varchar(40) NOT NULL default '',
group_description varchar(255) NOT NULL default '',
group_moderator mediumint(8) NOT NULL default '0',
group_single_user tinyint(1) NOT NULL default '1',
KEY group_single_user (group_single_user)
) TYPE=MyISAM;
Verfasst: 15.05.2005 20:45
von PhilippK
Die auto_increments wären aber interessant gewesen
Code: Alles auswählen
CREATE TABLE `phpbb_groups` (
`group_id` mediumint(8) NOT NULL auto_increment,
`group_type` tinyint(4) NOT NULL default '1',
`group_name` varchar(40) NOT NULL default '',
`group_description` varchar(255) NOT NULL default '',
`group_moderator` mediumint(8) NOT NULL default '0',
`group_single_user` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`group_id`),
KEY `group_single_user` (`group_single_user`)
) TYPE=MyISAM;
Gruß, Philipp
Verfasst: 15.05.2005 20:48
von macnack
und so sieht das aus wenn ich das Häckchen nicht rausmache
Code: Alles auswählen
-- Tabellenstruktur für Tabelle `phpbb_groups`
--
CREATE TABLE `phpbb_groups` (
`group_id` mediumint(8) NOT NULL default '0',
`group_type` tinyint(4) NOT NULL default '1',
`group_name` varchar(40) NOT NULL default '',
`group_description` varchar(255) NOT NULL default '',
`group_moderator` mediumint(8) NOT NULL default '0',
`group_single_user` tinyint(1) NOT NULL default '1',
KEY `group_single_user` (`group_single_user`)
) TYPE=MyISAM;
Verfasst: 15.05.2005 21:49
von PhilippK
Dann gehe mal mit phpMyAdmin auf die Tabelle und ändere sie so ab, dass group_id zum Primärschlüssel wird. Vorher vielleicht sicherheitshalber ein Backup machen
Gruß, Philipp
Verfasst: 15.05.2005 22:16
von macnack
also wenn ich bei group_id unter extras auto_increments eingebe bekomme ich folgende fehlermeldung
Code: Alles auswählen
SQL-Befehl:
ALTER TABLE `phpbb_groups` CHANGE `group_id` `group_id` MEDIUMINT( 8 ) DEFAULT '0' NOT NULL AUTO_INCREMENT
MySQL meldet:
#1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key
Verfasst: 15.05.2005 23:12
von PhilippK
auto_increment ist auch der zweite Schritt - Primärschlüssel wäre der erste

Welche phpMyAdmin-Version verwendest du?
Gruß, Philipp
Verfasst: 16.05.2005 09:25
von macnack
Hey
ein click auf Primärschlüssel bringt folgende Fehlermeldung
Code: Alles auswählen
ALTER TABLE `phpbb_groups` ADD PRIMARY KEY ( `group_id` )
MySQL meldet:
#1062 - Duplicate entry '0' for key 1
Verwende phpMyAdmin 2.6.0-pl3
Verfasst: 16.05.2005 10:26
von PhilippK
Gut, dann sind wir schon recht nahe am Problem...
Lösche alle Einträge, die für group_id den Wert 0 haben. DB Maintenance fixt das ganze später wieder, sollte also kein Problem darstellen.
Gruß, Philipp