UPDATE Befehlt falsch ?

ts201

Registered User
Hallo,
ich möchte dies :

UPDATE phpbb_users SET user_id = user_id +71;

Nur wenn ich dies eingebe, kommt dies :

MySQL meldet: Dokumentation
#1062 - Duplicate entry '70' for key 1

Was ist daran falsch ?
 
Hattest du das vor?
PHP:
user_id2=user_id+72;
UPDATE phpbb_users SET user_id = user_id2;


Aber fehlt da nicht auch noch eine WHERE Anweisung?
 
Ich habe dies vor :
Ich möchte, dass die User ID bei 71 beginnt.
Also USER_ID 1 = 71
USER ID 2 = 72
USER ID 3 = 73

etc. - bis etwa zu ID 1200

Und dafür muss dies :

UPDATE phpbb_users SET user_id = user_id +71;

doch stimmen, oder ?
 
Guin said:
Hattest du das vor?
PHP:
user_id2=user_id+72;
UPDATE phpbb_users SET user_id = user_id2;


Aber fehlt da nicht auch noch eine WHERE Anweisung?

Da kommt die Meldung :

SQL-Befehl:

user_id2 = user_id +72;

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'user_id2=user_id+72' at line 1
 
ts201 said:
Und dafür muss dies :
Code:
UPDATE phpbb_users SET user_id = user_id +71;
doch stimmen, oder ?
Nein!

Istbestand
Code:
user_id = 1
...
user_id = 70
user_id = 71
user_id = 72
...
user_id = 1200

Wenn jetzt der Update Befehl für die user_id = 1 ausgeführt wird, sprich 71 addiert werden sollten, gäbe es zwei Datensätzte mit der gleichen id 72.

user_id 1 + 71 = user_id 72 (neu)
user_id 72 (alt)

Gruß flyingoffice
 
Also muss es so lauten ?


UPDATE phpbb_users SET user_id = user_id +1200; ?

Nur genau dies will ich ja nicht... es muss bei 70 losgehen...
 
Hab mal in der MySql Doku nachgesehen und folgendes gefunden, das Dir helfen sollte
If an UPDATE statement includes an ORDER BY clause, the rows are updated in the order specified by the clause. ORDER BY can be used from MySQL 4.0.0
Code:
UPDATE phpbb_users SET user_id = user_id + 71 ORDER BY user_id DESC
sollte demnach das tun was Du möchtest.

Gruß flyingoffice
 
Last edited by a moderator:
Super, das war es. Danke !

Jetzt habe ich dies gemacht, und als xxx.sql exportiert und möchte dies nun in einem anderen phpmyadmin (datenbank) wieder importieren. Siehe :
Code:
-- phpMyAdmin SQL Dump
-- version 2.7.0-pl2
-- [url]http://www.phpmyadmin.net[/url]
-- 
-- Host: localhost
-- Erstellungszeit: 08. Mai 2006 um 18:10
-- Server Version: 5.0.18
-- PHP-Version: 5.1.1
-- 
-- Datenbank: `usr_web1_1`
-- 
-- --------------------------------------------------------
-- 
-- Tabellenstruktur für Tabelle `phpbb_users`
-- 
CREATE TABLE `phpbb_users` (
`user_id` mediumint( 8 ) NOT NULL default '0',
`user_active` tinyint( 1 ) default '1',
`username` varchar( 25 ) NOT NULL default '',
`user_password` varchar( 32 ) NOT NULL default '',
`user_session_time` int( 11 ) NOT NULL default '0',
`user_session_page` smallint( 5 ) NOT NULL default '0',
`user_lastvisit` int( 11 ) NOT NULL default '0',
`user_regdate` int( 11 ) NOT NULL default '0',
`user_level` tinyint( 4 ) default '0',
`user_posts` mediumint( 8 ) unsigned NOT NULL default '0',
`user_timezone` decimal( 5, 2 ) NOT NULL default '0.00',
`user_style` tinyint( 4 ) default NULL ,
`user_lang` varchar( 255 ) default NULL ,
`user_dateformat` varchar( 14 ) NOT NULL default 'd M Y H:i',
`user_new_privmsg` smallint( 5 ) unsigned NOT NULL default '0',
`user_unread_privmsg` smallint( 5 ) unsigned NOT NULL default '0',
`user_last_privmsg` int( 11 ) NOT NULL default '0',
`user_emailtime` int( 11 ) default NULL ,
`user_viewemail` tinyint( 1 ) default NULL ,
`user_attachsig` tinyint( 1 ) default NULL ,
`user_allowhtml` tinyint( 1 ) default '1',
`user_allowbbcode` tinyint( 1 ) default '1',
`user_allowsmile` tinyint( 1 ) default '1',
`user_allowavatar` tinyint( 1 ) NOT NULL default '1',
`user_allow_pm` tinyint( 1 ) NOT NULL default '1',
`user_allow_viewonline` tinyint( 1 ) NOT NULL default '1',
`user_notify` tinyint( 1 ) NOT NULL default '1',
`user_notify_pm` tinyint( 1 ) NOT NULL default '0',
`user_popup_pm` tinyint( 1 ) NOT NULL default '0',
`user_rank` int( 11 ) default '0',
`user_avatar` varchar( 100 ) default NULL ,
`user_avatar_type` tinyint( 4 ) NOT NULL default '0',
`user_email` varchar( 255 ) default NULL ,
`user_icq` varchar( 15 ) default NULL ,
`user_website` varchar( 100 ) default NULL ,
`user_from` varchar( 100 ) default NULL ,
`user_from_flag` varchar( 25 ) default NULL ,
`user_sig` text,
`user_sig_bbcode_uid` varchar( 10 ) default NULL ,
`user_aim` varchar( 255 ) default NULL ,
`user_yim` varchar( 255 ) default NULL ,
`user_msnm` varchar( 255 ) default NULL ,
`user_occ` varchar( 100 ) default NULL ,
`user_interests` varchar( 255 ) default NULL ,
`user_actkey` varchar( 32 ) default NULL ,
`user_newpasswd` varchar( 32 ) default NULL ,
`ct_logintry` int( 2 ) default '0',
`ct_postcount` int( 10 ) NOT NULL ,
`ct_posttime` int( 10 ) NOT NULL ,
`ct_searchcount` int( 10 ) NOT NULL ,
`ct_searchtime` int( 10 ) NOT NULL ,
`user_calendar_perm` tinyint( 1 ) default '1',
`ct_unsucclogin` int( 10 ) default NULL ,
`ct_pwreset` int( 2 ) NOT NULL ,
`ct_mailcount` int( 10 ) NOT NULL ,
`user_lastlogon` int( 11 ) default '0',
`user_totaltime` int( 11 ) default '0',
`user_totallogon` smallint( 5 ) default '0',
`user_totalpages` int( 11 ) NOT NULL default '0',
`user_gender` tinyint( 4 ) NOT NULL default '0',
`user_warnings` smallint( 5 ) default '0',
`user_realname` varchar( 25 ) NOT NULL default '',
`user_birthday` varchar( 8 ) NOT NULL default '0',
`user_last_birthday` int( 11 ) unsigned NOT NULL default '0',
`user_home_phone` varchar( 20 ) default NULL ,
`user_home_fax` varchar( 20 ) default NULL ,
`user_work_phone` varchar( 20 ) default NULL ,
`user_work_fax` varchar( 20 ) default NULL ,
`user_cellular` varchar( 20 ) default NULL ,
`user_pager` varchar( 20 ) default NULL ,
`user_summer_time` tinyint( 1 ) unsigned NOT NULL default '0',
`user_list_option` varchar( 50 ) NOT NULL default '111000000111000001',
`user_allow_email` tinyint( 1 ) NOT NULL default '1',
`user_allow_website` tinyint( 1 ) NOT NULL default '1',
`user_allow_messanger` tinyint( 1 ) NOT NULL default '1',
`user_allow_real` tinyint( 1 ) NOT NULL default '1',
`user_allow_sig` tinyint( 1 ) NOT NULL default '1',
`user_viewpm` tinyint( 1 ) NOT NULL default '1',
`user_viewwebsite` tinyint( 1 ) NOT NULL default '1',
`user_viewmessanger` tinyint( 1 ) NOT NULL default '1',
`user_viewreal` tinyint( 1 ) NOT NULL default '1',
`user_viewavatar` tinyint( 1 ) NOT NULL default '1',
`user_viewsig` tinyint( 1 ) NOT NULL default '1',
`user_viewimg` tinyint( 1 ) NOT NULL default '1',
`user_calendar_display_open` tinyint( 1 ) NOT NULL default '0',
`user_calendar_header_cells` tinyint( 1 ) NOT NULL default '7',
`user_calendar_week_start` tinyint( 1 ) NOT NULL default '1',
`user_calendar_nb_row` tinyint( 2 ) unsigned NOT NULL default '5',
`user_calendar_birthday` tinyint( 1 ) NOT NULL default '1',
`user_traffic` int( 255 ) default '0',
`user_allow_new_download_popup` tinyint( 1 ) NOT NULL default '1',
`user_allow_new_download_email` tinyint( 1 ) NOT NULL default '0',
`user_dl_update_time` int( 11 ) NOT NULL default '0',
`user_new_download` tinyint( 1 ) NOT NULL default '0',
`user_absence` tinyint( 1 ) NOT NULL default '0',
`user_absence_mode` mediumint( 8 ) NOT NULL default '0',
`user_absence_text` text NOT NULL ,
`user_next_birthday_greeting` int( 11 ) NOT NULL default '0',
`user_popup_notes` tinyint( 1 ) default '0',
`user_skype` varchar( 255 ) default NULL ,
`user_login_tries` smallint( 5 ) unsigned NOT NULL default '0',
`user_last_login_try` int( 11 ) NOT NULL default '0',
PRIMARY KEY ( `user_id` ) ,
KEY `user_session_time` ( `user_session_time` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1;

MySQL meldet: Dokumentation
#1050 - Table 'phpbb_users' already exists

Wie bekomme ich es hin, dass er dies einfach hinzufügt ? Also er soll die phpbb_users nur ergänzen....
 
Last edited by a moderator:
Das ist auch nur der "CREATE TABLE `phpbb_users`" Teil. Dahinter musste der Bereich mit den Daten kommen.
 
Ich glaube wir haben uns falsch verstanden. Alles was du oben gepostet hast, ist nur die Tabellenstruktur.

Normalerweise folgt nach der Tabellenstruktur der Datenteil, sofern das beim Exportieren angegeben wurde.
 
Ok. Dann kommt aber so ein Fehler beim Importieren in die neue Datenbank :

INSERT INTO `phpbb_users`
VALUES ( 75, 1, 'xxxx', '57c5c6d4537ef9f1a7317cf5476c752e', 1113572667, 0, 1112960663, 1069833848, 0, 0, 0.00, 1, 'german', 'D M d, Y g:i a', 0, 0, 0, NULL , NULL , NULL , 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, NULL , 0, 'lxxxx@xxxx.de', NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , '', '', 0, 0, 0, 0, 0, 1, NULL , 0, 0, 1113572671, 4014, 14, 14, 0, 0, '', '0', 1120341618, NULL , NULL , NULL , NULL , NULL , NULL , 0, '111000000111000001', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 7, 1, 5, 1, 0, 1, 0, 0, 0, 0, 0, '', 0, 0, NULL , 0, 0 ) ;

MySQL meldet: Dokumentation
#1136 - Column count doesn't match value count at row 1
 
Guin said:
Es scheint, dass beide Tabellen nicht gleich sind.
Was nicht unbedingt ein Problem sein muß. Habe es gerade nicht nur Hand, aber man kann doch in PHPMYADMIN einstellen, daß auch die Feldnamen mit in den INSERT aufgenommen werden. Dann könnte es funktionieren.

Gruß flyingoffice
 
Oder Du setzt vor den Create ein :
Code:
DROP TABLE IF EXISTS phpbb_users;
(Läßt sich ebenfalls bei phpMyAdmin einstellen.)

huschi.
 
Back
Top