Перенос из одних полей в другие

Тема в разделе "Базы данных", создана пользователем Rabben, 30 ноя 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Rabben

    Rabben

    Регистр.:
    26 мар 2009
    Сообщения:
    159
    Симпатии:
    10
    Есть 2 таблицы
    Код:
    CREATE TABLE `ibf_members` (
      `id` mediumint(8) NOT NULL default '0',
      `name` varchar(255) NOT NULL default '',
      `mgroup` smallint(3) NOT NULL default '0',
      `email` varchar(150) NOT NULL default '',
      `joined` int(10) NOT NULL default '0',
      `ip_address` varchar(16) NOT NULL default '',
      `posts` mediumint(7) default '0',
      `title` varchar(64) default NULL,
      `allow_admin_mails` tinyint(1) default NULL,
      `time_offset` varchar(10) default NULL,
      `hide_email` varchar(8) default NULL,
      `email_pm` tinyint(1) default '1',
      `email_full` tinyint(1) default NULL,
      `skin` smallint(5) default NULL,
      `warn_level` int(10) default NULL,
      `warn_lastwarn` int(10) NOT NULL default '0',
      `language` varchar(32) default NULL,
      `last_post` int(10) default NULL,
      `restrict_post` varchar(100) NOT NULL default '0',
      `view_sigs` tinyint(1) default '1',
      `view_img` tinyint(1) default '1',
      `view_avs` tinyint(1) default '1',
      `view_pop` tinyint(1) default '1',
      `bday_day` int(2) default NULL,
      `bday_month` int(2) default NULL,
      `bday_year` int(4) default NULL,
      `new_msg` tinyint(2) default '0',
      `msg_total` smallint(5) default '0',
      `show_popup` tinyint(1) default '0',
      `misc` varchar(128) default NULL,
      `last_visit` int(10) default '0',
      `last_activity` int(10) default '0',
      `dst_in_use` tinyint(1) default '0',
      `view_prefs` varchar(64) default '-1&-1',
      `coppa_user` tinyint(1) default '0',
      `mod_posts` varchar(100) NOT NULL default '0',
      `auto_track` varchar(50) default '0',
      `temp_ban` varchar(100) default '0',
      `sub_end` int(10) NOT NULL default '0',
      `login_anonymous` varchar(3) NOT NULL default '0&0',
      `ignored_users` text,
      `mgroup_others` varchar(255) NOT NULL default '',
      `org_perm_id` varchar(255) NOT NULL default '',
      `member_login_key` varchar(32) NOT NULL default '',
      `member_login_key_expire` int(10) NOT NULL default '0',
      `subs_pkg_chosen` smallint(3) NOT NULL default '0',
      `has_blog` tinyint(1) NOT NULL default '0',
      `members_markers` text,
      `members_editor_choice` varchar(3) NOT NULL default 'std',
      `members_auto_dst` tinyint(1) NOT NULL default '1',
      `members_display_name` varchar(255) NOT NULL default '',
      `members_created_remote` tinyint(1) NOT NULL default '0',
      `members_cache` mediumtext,
      `members_disable_pm` int(1) NOT NULL default '0',
      `members_profile_views` int(10) unsigned NOT NULL default '0',
      `members_l_display_name` varchar(255) NOT NULL default '0',
      `members_l_username` varchar(255) NOT NULL default '0',
      `failed_logins` text,
      `failed_login_count` smallint(3) NOT NULL default '0',
      `has_gallery` int(1) default '0',
      `online` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      PRIMARY KEY  (`id`),
      KEY `mgroup` (`mgroup`),
      KEY `bday_day` (`bday_day`),
      KEY `bday_month` (`bday_month`),
      KEY `members_l_display_name` (`members_l_display_name`),
      KEY `members_l_username` (`members_l_username`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    Код:
    CREATE TABLE `users` (
      `user_id` int(9) NOT NULL auto_increment,
      `user_level_id` int(9) NOT NULL default '0',
      `user_subnet_id` int(9) NOT NULL default '0',
      `user_profilecat_id` int(9) NOT NULL default '0',
      `user_email` varchar(70) collate utf8_unicode_ci NOT NULL default '',
      `user_newemail` varchar(70) collate utf8_unicode_ci NOT NULL default '',
      `user_fname` varchar(64) collate utf8_unicode_ci NOT NULL default '',
      `user_lname` varchar(64) collate utf8_unicode_ci NOT NULL default '',
      `user_username` varchar(64) collate utf8_unicode_ci NOT NULL default '',
      `user_displayname` varchar(128) collate utf8_unicode_ci default NULL,
      `user_password` varchar(50) collate utf8_unicode_ci NOT NULL default '',
      `user_password_method` tinyint(1) NOT NULL default '0',
      `user_code` varchar(255) collate utf8_unicode_ci NOT NULL default '',
      `user_enabled` int(1) NOT NULL default '0',
      `user_verified` int(1) NOT NULL default '0',
      `user_language_id` int(9) NOT NULL default '0',
      `user_signupdate` int(14) NOT NULL default '0',
      `user_lastlogindate` int(14) NOT NULL default '0',
      `user_lastactive` int(14) NOT NULL default '0',
      `user_ip_signup` varchar(15) collate utf8_unicode_ci NOT NULL default '',
      `user_ip_lastactive` varchar(15) collate utf8_unicode_ci NOT NULL default '',
      `user_status` varchar(190) collate utf8_unicode_ci NOT NULL default '',
      `user_status_date` int(14) NOT NULL default '0',
      `user_logins` int(9) NOT NULL default '0',
      `user_invitesleft` int(3) NOT NULL default '0',
      `user_country` varchar(5) collate utf8_unicode_ci NOT NULL default '',
      `user_timezone` varchar(5) collate utf8_unicode_ci NOT NULL default '',
      `user_dateupdated` int(14) NOT NULL default '0',
      `user_blocklist` text collate utf8_unicode_ci,
      `user_invisible` int(1) NOT NULL default '0',
      `user_saveviews` int(1) NOT NULL default '0',
      `user_photo` varchar(10) collate utf8_unicode_ci NOT NULL default '',
      `user_search` int(1) NOT NULL default '0',
      `user_privacy` int(2) NOT NULL default '0',
      `user_comments` int(2) NOT NULL default '0',
      `user_hasnotifys` tinyint(1) NOT NULL default '0',
      `user_profile_album` enum('tab','side') collate utf8_unicode_ci NOT NULL default 'tab',
      `user_userpoints_allowed` tinyint(1) NOT NULL default '1',
      PRIMARY KEY  (`user_id`),
      UNIQUE KEY `user_username` (`user_username`),
      UNIQUE KEY `user_email` (`user_email`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    
    Как правильно сделать запрос/скрипт для переноса информации из одних полей в другие?
    Нужно перенести из:
    ibf_members.id в users.user_id,
    ibf_members.email в users.user_email и users.user_newemail,
    ibf_members.name в users.username.
    А все остальные поля должны стать по стандарту.
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    ну самый простой путь это сделать экспорт данных вместе со структурой, потом немного поправить заголовок структуры и сделать обратный импорт с пересозданием второй таблицы
     
  3. reds

    reds Постоялец

    Регистр.:
    5 янв 2008
    Сообщения:
    53
    Симпатии:
    35
    хз. имхо проще пхп скриптик написать где он в цикле будет брать нужные значения из базы и подставлять куда надо. Со структурой слишком сложно.
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    Код:
    INSERT INTO users (user_id, user_email, user_newemail, user_username) 
    SELECT id, email, email, name
    FROM ibf_members
    
    или добавить новые
    Код:
    INSERT INTO users (user_id, user_email, user_newemail, user_username) 
    SELECT i.id, i.email, i.email, i.name
    FROM ibf_members i
    LEFT JOIN users u ON u.user_id=i.id
    WHERE u.user_id IS NULL
    
    у user_username, user_email должны быть уникальные значения, поэтому могут быть проблемы
     
    Rabben нравится это.
  5. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    205
    Симпатии:
    13
    Я бы тоже вручную делал через экспорт-импорт sql
     
Статус темы:
Закрыта.