MySql Fehler beim ausführen eines Befehls
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansicht
befehl
berechtigung
code
detail
fehler
gleiche datenbank
initial
integer not
not
null
problem
show
sicher raten
status
testen
text
update
url
vermutung
-
Der Befehl funtioniert auf meinem Lokalem rechner nur auf lima-city nicht:
ALTER TABLE `rc_mail_plugin_manager` ADD CONSTRAINT `user_id_fk_plugin_manager` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE `rc_mail_plugin_manager` DROP FOREIGN KEY `user_id_fk_plugin_manager` ; ALTER TABLE `rc_mail_plugin_manager` DROP `user_id`; ALTER TABLE `rc_mail_plugin_manager` ENGINE=MyISAM; UPDATE `rc_mail_system` SET `value`='initial|20131209' WHERE `name`='myrc_plugin_manager';
Wieso?
Kann mir jemand helfen?
Danke schon mal im vorraus.
MfG willstdueswissen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hast du die gleiche Datenbank auf beiden Servern? Und was für einen Fehler spuckt mySQL aus? Bin momentan bei der Arbeit, aber werde es Zuhause selbst testen.
-
willstdueswissen schrieb:
nein!
... Wieso?
Kann mir jemand helfen? ...
bei alter table gibt es unmengen, was man in betracht ziehen muss. daher: bitte mysql version, mysql fehlermeldung und engine-type und - auch sehr wichtig - 'create table rc_mail_plugin_manager;' hier posten und zwar so von dort, wo es geht und von lima, wo es eben nicht geht. sonst helfe dir odin.
was ich so ad hoc sehe ist:
zuerstALTER TABLE ... ADD CONSTRAINT `user_id_fk_plugin_manager` FOREIGN KEY ... REFERENCES ...
dannALTER TABLE ... DROP FOREIGN KEY user_id_fk_plugin_manager
was ein bekannter workaround für genau das problemADD CONSTRAINT name FOREIGN KEY (....) ...
ist. leider in verkehreter reihenfolge! wo hast du die 5 queries so wie sie da stehen her?
also wenn alle meine vermutungen stimmen (ich muss hier leider hellsehen!), dann zuerst '... DROP FOREIGN KEY ...' und dann erst '... ADD CONSTRAINT ... FOREIGN KEY ...'!
aber nach ansicht dessen was ich am anfang fett-gedruckt geschrieben habe, könnte ich erst 'sicher raten'
Beitrag zuletzt geändert: 7.4.2014 15:52:52 von czibere -
der Befehl funktioniert nicht?
Aber das sind doch mehrere SQL-Staments!
Bei welchem taucht denn das Problem wirklich auf
Schon mal "per Hand" über CLI von MYPHPADMIN versucht ?
Geht es etwas konkreter?
Beitrag zuletzt geändert: 7.4.2014 20:47:50 von dunkeltuten -
c143 schrieb:
Hast du die gleiche Datenbank auf beiden Servern?
Ja eine habe ich hier auf Lima-City.de (funtkioniert nicht) und die andere mit xampp.
Und was für einen Fehler spuckt mySQL aus? Bin momentan bei der Arbeit, aber werde es Zuhause selbst testen.
Diesen Fehler spuckt phpmyadmin aus:
Fehler SQL-Befehl: ALTER TABLE `rc_mail_plugin_manager` ADD CONSTRAINT `user_id_fk_plugin_manager` FOREIGN KEY ( `user_id` ) REFERENCES `users` ( `user_id` ) ON DELETE CASCADE ON UPDATE CASCADE ; MySQL meldet: Dokumentation #1005 - Can't create table 'db_284034_2.#sql-39a2_1a2db90' (errno: 150) (Details...)
Dann noch der Befehl der davor ausgeführt wurde:
(der hat auch funktioniert)
CREATE TABLE IF NOT EXISTS `rc_mail_plugin_manager` ( `id` int(10) NOT NULL AUTO_INCREMENT, `user_id` int(10) unsigned NOT NULL, `conf` text NOT NULL, `value` text, `type` text, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `user_identities_index` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `rc_mail_system` ( `name` varchar(64) NOT NULL, `value` mediumtext, PRIMARY KEY(`name`) ); INSERT INTO `rc_mail_system` (name, value) VALUES ('myrc_plugin_manager', 'initial');
Die MySql Version auf Lima sollte ja die 5 sein
und xampp ist die selbe.
Beide haben die Erweiterung mysqli
czibere schrieb:
wo hast du die 5 queries so wie sie da stehen her?
Das ist von diesem plugin für roundcube:
http://myroundcube.com/myroundcube-plugins/plugin-manager
also wenn alle meine vermutungen stimmen (ich muss hier leider hellsehen!), dann zuerst '... DROP FOREIGN KEY ...' und dann erst '... ADD CONSTRAINT ... FOREIGN KEY ...'!
aber nach ansicht dessen was ich am anfang fett-gedruckt geschrieben habe, könnte ich erst 'sicher raten'
Das kann ich mal ausprobieren schon mal danke ^^
dunkeltuten schrieb:
der Befehl funktioniert nicht?
Aber das sind doch mehrere SQL-Staments!
Bei welchem taucht denn das Problem wirklich auf
Na er springt hier raus:
ALTER TABLE `rc_mail_plugin_manager` ADD CONSTRAINT `user_id_fk_plugin_manager` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
Und wenn noch ne Information fehlt, schreit sofort los und ich werde versuche sie euch zu geben. -
willstdueswissen schrieb:
... Diesen Fehler spuckt phpmyadmin aus:
Fehler SQL-Befehl: ALTER TABLE `rc_mail_plugin_manager` ADD CONSTRAINT `user_id_fk_plugin_manager` FOREIGN KEY ( `user_id` ) REFERENCES `users` ( `user_id` ) ON DELETE CASCADE ON UPDATE CASCADE ; MySQL meldet: Dokumentation #1005 - Can't create table 'db_284034_2.#sql-39a2_1a2db90' (errno: 150) (Details...)
...
;) sehr schön. siehst du es auch?... (errno: 150) (Details...)
;) ;)
ich weiß, du hast die details nicht unterschlagen. also mache folgendes (in der console):
query_1.ALTER TABLE `rc_mail_plugin_manager` ADD CONSTRAINT `user_id_fk_plugin_manager` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
unmitelbar danach:
query_2.SHOW ENGINE INNODB STATUS;
was dann angezeigt wird, bitte posten. das sind die erwünschten 'details' ;) -
Dann kommt das:
#1227 - Access denied; you need (at least one of) the PROCESS privilege(s) for this operation
Ist das jetzt der Fehler oder habe ich nicht die Berechtigung diesen Befehl
SHOW ENGINE INNODB STATUS;
auszuführen. -
Du arbeitest ja mit "ALTER TABLE [...]"
Ich habe mal nachgeschaut wie ich das bisher gemacht habe:
Ich lege das CONSTRAINT direkt mit der Tabelle an:
CREATE TABLE $mysqltable ( timetunnel_id integer NOT NULL auto_increment UNIQUE, timetunnel_start datetime NOT NULL, timetunnel_finish datetime NOT NULL, timetunnel_object varchar(30) NOT NULL, timetunnel_objectid integer NOT NULL, timetunnel_objectaction varchar(30) NOT NULL, timetunnel_objectfleetid varchar(30) NOT NULL, timetunnel_username varchar(30) NOT NULL, timetunnel_worldsourceid integer NOT NULL, timetunnel_worldid integer NOT NULL, timetunnel_menge integer NOT NULL, timetunnel_r1kosten integer NOT NULL, timetunnel_r2kosten integer NOT NULL, timetunnel_r3kosten integer NOT NULL, timetunnel_r4kosten integer NOT NULL, CONSTRAINT pk_time PRIMARY KEY (timetunnel_finish,timetunnel_id) ) ENGINE=InnoDB;
Nur mal um den Fehler weiter einzugrenzen:
Tabelle löschen oder umbenennen und dann nochmal direkt über "CREATE TABLE" incl. dem CONSTRAINT anlegen!
Klappt es dann? -
willstdueswissen schrieb:
yo mey! auf lima wirst du nie die rechte bekommen. mache es auf deinem localhost ;)
Dann kommt das:
#1227 - Access denied; you need (at least one of) the PROCESS privilege(s) for this operation
Ist das jetzt der Fehler oder habe ich nicht die Berechtigung diesen Befehl
SHOW ENGINE INNODB STATUS;
auszuführen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage