Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie baz danych
Forum PHP.pl > Forum > Bazy danych > MySQL
kiepson
Cześć. Mam dwie bazy danych, a konkretnie chodzi mi o tabelki: 'members'. Chciałbym połączyć obie bazy w taki sposób aby rekordy z drugiej tabeli nie nadpisały tych z pierwszej. W jednej bazie danych mam ok 19tysięcy użytkowników, zaś w drugiej 4tysiące.

Możliwe, że mogą powtarzać się np te same adresy email lub adresy IP użytkowników, ale to chyba nie przeszkadza. Ważne, aby dołączana baza danych zaczynała się dopiero po rekordzie o ID (np). 19.000 aby rekordy z nowej bazy danych miały już np ID: 19.001, 19.002 itd. Czy istnieje taka możliwość? Jeśli tak to proszę o podpowiedzi.

Tak, używałem google, lecz nic z tego się wiele nie dowiedziałem. Fanatykiem mysql nie jestem, ale od czasu do czasu coś wczytać, zapisać potrafię. Dziękuję już z góry i pozdrawiam!
zidek
Ustaw w strukturze nowej tabeli odpowiednią wartość auto_increment wink.gif
kiepson
Cytat(zidek @ 25.03.2015, 17:23:10 ) *
Ustaw w strukturze nowej tabeli odpowiednią wartość auto_increment wink.gif


  1. TABLE members (
  2. id MEDIUMINT NOT NULL AUTO_INCREMENT,

Czyli w ten sposób, tak? Wtedy ze drugiej bazy np ID 1 nadpisze się automatycznie jako te najnowsze do starej, hm?
johny_s
a w tej pierwszej bazie danych będziesz miał jeszcze dodawane rekordy?
kiepson
Cytat(johny_s @ 25.03.2015, 17:43:03 ) *
a w tej pierwszej bazie danych będziesz miał jeszcze dodawane rekordy?


To znaczy, obie bazy danych są prawie takie same. Jedna z baz danych (ta mniejsza) ma dodatkowe rekordy, które nie są wcale potrzebne. Miałem punkty reputacji w profilu na jednej stronie i kilka innych rzeczy- mógłbym je usunąć, ew nie wiem...
johny_s
to nie możesz jej tak przerobić żeby była jedynie uzupełnieniem pierwszej?
kiepson
A w jaki sposób- poprzez MySQL mogę np pousuwać zbędne rekordy z bazy?

Zrobiłbym tak, tę bazę którą chcę dołączyć- zostawiłbym tylko: ID, name, email, password, te inne podstawowe cahe itd reszte usunął- wtedy mógłbym ją normalnie bez kłopotów połączyć tak?
johny_s
W głównej bazie zostawiasz wszystkie informacje które zawsze występują, a w tej dodatkowej dajesz tylko opcjonalne + klucz do głównej bazy.
Przy pobieraniu danych robisz left joina i tam gdzie nie ma parametrów dostaniesz null'e
kiepson
Jak np mam bazę, którą chcę dodać do tej pierwszej:
  1. INSERT INTO `members` (`member_id`, `name`, `member_group_id`, `email`, `joined`, `ip_address`, `posts`, `title`, `allow_admin_mails`, `time_offset`, `skin`, `warn_level`, `warn_lastwarn`, `language`, `last_post`, `restrict_post`, `view_sigs`, `view_img`, `bday_day`, `bday_month`, `bday_year`, `msg_count_new`, `msg_count_total`, `msg_count_reset`, `msg_show_notification`, `misc`, `last_visit`, `last_activity`, `dst_in_use`, `coppa_user`, `mod_posts`, `auto_track`, `temp_ban`, `login_anonymous`, `ignored_users`, `mgroup_others`, `org_perm_id`, `member_login_key`, `member_login_key_expire`, `has_blog`, `blogs_recache`, `has_gallery`, `members_auto_dst`, `members_display_name`, `members_seo_name`, `members_created_remote`, `members_cache`, `members_disable_pm`, `members_l_display_name`, `members_l_username`, `failed_logins`, `failed_login_count`, `members_profile_views`, `members_pass_hash`, `members_pass_salt`, `member_banned`, `member_uploader`, `members_bitoptions`, `fb_uid`, `fb_emailhash`, `fb_lastsync`, `members_day_posts`, `live_id`, `twitter_id`, `twitter_token`, `twitter_secret`, `notification_cnt`, `tc_lastsync`, `fb_session`, `fb_token`, `ips_mobile_token`, `unacknowledged_warnings`, `ipsconnect_id`, `ipsconnect_revalidate_url`, `conv_password`, `recenttopics_onoff`, `topicosrecentes_showdqtd`, `recenttopics_qtd`, `recenttopics_forums`, `steamid`) VALUES
  2. (1, 'RapToSila', 4, 'rtsnh95@gmail.com', 1367691582, '83.10.84.140', 1783, 'Tytuł Zbędny Ranga Wyjaśnia', 0, '1', 8, 0, 0, 1, 1427633457, '', 1, 1, 4, 1, 1995, 0, 1178, 0, 1, NULL, 1427609367, 1427633357, 0, 0, '', '', '0', '0&1', 'a:0:{}', '', ',4,', '9a1d1178ab29534e403409a67d257dc1', 1428238158, '', NULL, 0, 0, 'RapToSila', 'raptosila', 0, 'a:10:{s:11:"report_temp";a:0:{}s:19:"report_last_updated";i:1427633357;s:10:"report_num";s:1:"0";s:13:"msgAlertReset";i:1427608911;s:7:"friends";a:156:{;i:28376;s:1:"1";}s:14:"shoutbox_prefs";s:185:"a:6:{s:15:"shoutbox_height";i:252;s:16:"shoutbox_gheight";i:235;s:14:"global_display";i:1;s:15:"enter_key_shout";i:1;s:21:"enable_quick_commands";i:1;s:22:"display_refresh_button";i:1;}";s:8:"vncPrefs";a:1:{s:6:"forums";a:2:{s:4:"view";s:5:"today";s:15:"vncFollowFilter";i:0;}}s:10:"rc_rss_key";s:32:"0924be9f30f4afbc38fdef0106f2813a";s:13:"notifications";a:26:{s:13:"report_center";a:1:{s:8:"selected";a:0:{}}s:11:"new_comment";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:11:"post_quoted";a:1:{s:8:"selected";a:0:{}}s:9:"new_likes";a:1:{s:8:"selected";a:0:{}}s:15:"followed_topics";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:15:"followed_forums";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:22:"followed_topics_digest";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:22:"followed_forums_digest";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:15:"profile_comment";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:14:"friend_request";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:22:"friend_request_approve";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:19:"new_private_message";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:21:"reply_private_message";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:22:"invite_private_message";a:1:{s:8:"selected";a:1:{i:0;s:5:"email";}}s:17:"reply_your_status";a:1:{s:8:"selected";a:0:{}}s:16:"reply_any_status";a:1:{s:8:"selected";a:0:{}}s:20:"friend_status_update";a:1:{s:8:"selected";a:0:{}}s:7:"warning";a:1:{s:8:"selected";a:0:{}}s:12:"warning_mods";a:1:{s:8:"selected";a:0:{}}s:24:"pmviewer_keyword_monitor";a:1:{s:8:"selected";a:0:{}}s:13:"updated_video";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:9:"new_video";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:13:"approve_video";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:15:"unapprove_video";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:13:"pending_video";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}s:17:"new_video_comment";a:1:{s:8:"selected";a:1:{i:0;s:6:"inline";}}}s:23:"show_notification_popup";i:0;}', 0, 'raptosila', 'raptosila', '', 0, 5670, 'ebbf3a825e1473754d6c81a113441a71', 'kmdxi', 0, 'flash', 0, 0, '', 0, '0,0', NULL, '', '', '', 0, 0, '', '', NULL, NULL, 0, NULL, NULL, 0, 0, 5, '', NULL),


no i drugą tą co mam teraz:
  1. INSERT INTO `members` (`member_id`, `name`, `member_group_id`, `email`, `joined`, `ip_address`, `posts`, `title`, `allow_admin_mails`, `time_offset`, `skin`, `warn_level`, `warn_lastwarn`, `language`, `last_post`, `restrict_post`, `view_sigs`, `view_img`, `bday_day`, `bday_month`, `bday_year`, `msg_count_new`, `msg_count_total`, `msg_count_reset`, `msg_show_notification`, `misc`, `last_visit`, `last_activity`, `dst_in_use`, `coppa_user`, `mod_posts`, `auto_track`, `temp_ban`, `login_anonymous`, `ignored_users`, `mgroup_others`, `org_perm_id`, `member_login_key`, `member_login_key_expire`, `has_blog`, `blogs_recache`, `has_gallery`, `members_auto_dst`, `members_display_name`, `members_seo_name`, `members_created_remote`, `members_cache`, `members_disable_pm`, `members_l_display_name`, `members_l_username`, `failed_logins`, `failed_login_count`, `members_profile_views`, `members_pass_hash`, `members_pass_salt`, `member_banned`, `member_uploader`, `members_bitoptions`, `fb_uid`, `fb_emailhash`, `fb_lastsync`, `members_day_posts`, `live_id`, `twitter_id`, `twitter_token`, `twitter_secret`, `notification_cnt`, `tc_lastsync`, `fb_session`, `fb_token`, `ips_mobile_token`, `unacknowledged_warnings`, `member_premium_time`, `member_game_points`, `member_game_admin_perm`, `member_game_warns`, `member_services`) VALUES
  2. (1, 'admin', 4, 'kontakt@centrum-rp.eu', 1404892392, '91.228.8.128', 0, '', 1, '1', 0, 0, 0, 2, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, 1, NULL, 1427027988, 1427324745, 0, 0, '', '', '0', '0&1', 'a:0:{}', ',4,', ',4,', '6632192a404177d97c4c31829a3e1c25', 1427553566, NULL, NULL, 0, 1, 'admin', 'admin', 0, 'a:5:{s:11:"report_temp";a:0:{}s:19:"report_last_updated";i:1426855633;s:10:"report_num";s:1:"0";s:13:"notifications";a:19:{s:13:"report_center";a:1:{s:8:"selected";a:0:{}}s:11:"new_comment";a:1:{s:8:"selected";a:0:{}}s:11:"post_quoted";a:1:{s:8:"selected";a:0:{}}s:9:"new_likes";a:1:{s:8:"selected";a:0:{}}s:15:"followed_topics";a:1:{s:8:"selected";a:0:{}}s:15:"followed_forums";a:1:{s:8:"selected";a:0:{}}s:22:"followed_topics_digest";a:1:{s:8:"selected";a:0:{}}s:22:"followed_forums_digest";a:1:{s:8:"selected";a:0:{}}s:15:"profile_comment";a:1:{s:8:"selected";a:0:{}}s:14:"friend_request";a:1:{s:8:"selected";a:0:{}}s:22:"friend_request_approve";a:1:{s:8:"selected";a:0:{}}s:19:"new_private_message";a:1:{s:8:"selected";a:0:{}}s:21:"reply_private_message";a:1:{s:8:"selected";a:0:{}}s:22:"invite_private_message";a:1:{s:8:"selected";a:0:{}}s:17:"reply_your_status";a:1:{s:8:"selected";a:0:{}}s:16:"reply_any_status";a:1:{s:8:"selected";a:0:{}}s:20:"friend_status_update";a:1:{s:8:"selected";a:0:{}}s:7:"warning";a:1:{s:8:"selected";a:0:{}}s:12:"warning_mods";a:1:{s:8:"selected";a:0:{}}}s:23:"show_notification_popup";i:0;}', 0, 'admin', 'admin', '', 0, 0, 'c9cd1872052d95882ffb3e32e33659c8', '17o.''', 0, 'flash', 0, 0, '', 0, '0,0', NULL, '', '', '', 0, 0, '', NULL, NULL, NULL, 0, 0, 0, 0, 0),


To jak powinno wyglądać zapytanie, które mogę sobie napisać w pliku a potem zimportować go w phpmyadmin? Bo z tego co czytam biggrin.gif UPDATE TABLE nie wchodzi w grę.


a tak mam z tej bazy którą chce dodać.
  1. CREATE TABLE IF NOT EXISTS `members` (
  2. `member_id` mediumint(8) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(255) NOT NULL DEFAULT '',
  4. `member_group_id` smallint(3) NOT NULL DEFAULT '0',
  5. `email` varchar(150) NOT NULL DEFAULT '',
  6. `joined` int(10) NOT NULL DEFAULT '0',
  7. `ip_address` varchar(46) NOT NULL DEFAULT '',
  8. `posts` mediumint(7) DEFAULT '0',
  9. `title` varchar(64) DEFAULT NULL,
  10. `allow_admin_mails` tinyint(1) DEFAULT NULL,
  11. `time_offset` varchar(10) DEFAULT NULL,
  12. `skin` smallint(5) DEFAULT NULL,
  13. `warn_level` int(10) DEFAULT NULL,
  14. `warn_lastwarn` int(10) NOT NULL DEFAULT '0',
  15. `language` mediumint(4) DEFAULT NULL,
  16. `last_post` int(10) DEFAULT NULL,
  17. `restrict_post` varchar(100) NOT NULL DEFAULT '0',
  18. `view_sigs` tinyint(1) DEFAULT '1',
  19. `view_img` tinyint(1) DEFAULT '1',
  20. `bday_day` int(2) DEFAULT NULL,
  21. `bday_month` int(2) DEFAULT NULL,
  22. `bday_year` int(4) DEFAULT NULL,
  23. `msg_count_new` int(2) NOT NULL DEFAULT '0',
  24. `msg_count_total` int(3) NOT NULL DEFAULT '0',
  25. `msg_count_reset` int(1) NOT NULL DEFAULT '0',
  26. `msg_show_notification` int(1) NOT NULL DEFAULT '0',
  27. `misc` varchar(128) DEFAULT NULL,
  28. `last_visit` int(10) DEFAULT '0',
  29. `last_activity` int(10) DEFAULT '0',
  30. `dst_in_use` tinyint(1) DEFAULT '0',
  31. `coppa_user` tinyint(1) DEFAULT '0',
  32. `mod_posts` varchar(100) NOT NULL DEFAULT '0',
  33. `auto_track` varchar(50) DEFAULT '0',
  34. `temp_ban` varchar(100) DEFAULT '0',
  35. `login_anonymous` char(3) NOT NULL DEFAULT '0&0',
  36. `ignored_users` text,
  37. `mgroup_others` varchar(255) NOT NULL DEFAULT '',
  38. `org_perm_id` varchar(255) NOT NULL DEFAULT '',
  39. `member_login_key` varchar(32) NOT NULL DEFAULT '',
  40. `member_login_key_expire` int(10) NOT NULL DEFAULT '0',
  41. `has_blog` text,
  42. `blogs_recache` tinyint(1) DEFAULT NULL,
  43. `has_gallery` tinyint(1) NOT NULL DEFAULT '0',
  44. `members_auto_dst` tinyint(1) NOT NULL DEFAULT '1',
  45. `members_display_name` varchar(255) NOT NULL DEFAULT '',
  46. `members_seo_name` varchar(255) NOT NULL DEFAULT '',
  47. `members_created_remote` tinyint(1) NOT NULL DEFAULT '0',
  48. `members_cache` mediumtext,
  49. `members_disable_pm` int(1) NOT NULL DEFAULT '0',
  50. `members_l_display_name` varchar(255) NOT NULL DEFAULT '',
  51. `members_l_username` varchar(255) NOT NULL DEFAULT '',
  52. `failed_logins` text,
  53. `failed_login_count` smallint(3) NOT NULL DEFAULT '0',
  54. `members_profile_views` int(10) unsigned NOT NULL DEFAULT '0',
  55. `members_pass_hash` varchar(32) NOT NULL DEFAULT '',
  56. `members_pass_salt` varchar(5) NOT NULL DEFAULT '',
  57. `member_banned` tinyint(1) NOT NULL DEFAULT '0',
  58. `member_uploader` varchar(32) NOT NULL DEFAULT 'default',
  59. `members_bitoptions` int(10) unsigned NOT NULL DEFAULT '0',
  60. `fb_uid` bigint(20) unsigned NOT NULL DEFAULT '0',
  61. `fb_emailhash` varchar(60) NOT NULL DEFAULT '',
  62. `fb_lastsync` int(10) NOT NULL DEFAULT '0',
  63. `members_day_posts` varchar(32) NOT NULL DEFAULT '0,0',
  64. `live_id` varchar(32) DEFAULT NULL,
  65. `twitter_id` varchar(255) NOT NULL DEFAULT '',
  66. `twitter_token` varchar(255) NOT NULL DEFAULT '',
  67. `twitter_secret` varchar(255) NOT NULL DEFAULT '',
  68. `notification_cnt` mediumint(9) NOT NULL DEFAULT '0',
  69. `tc_lastsync` int(10) NOT NULL DEFAULT '0',
  70. `fb_session` varchar(200) NOT NULL DEFAULT '',
  71. `fb_token` text,
  72. `ips_mobile_token` varchar(64) DEFAULT NULL,
  73. `unacknowledged_warnings` tinyint(1) DEFAULT NULL,
  74. `ipsconnect_id` int(10) NOT NULL DEFAULT '0',
  75. `ipsconnect_revalidate_url` text,
  76. `conv_password` varchar(128) DEFAULT NULL,
  77. `recenttopics_onoff` tinyint(1) DEFAULT '1',
  78. `topicosrecentes_showdqtd` tinyint(1) DEFAULT '1',
  79. `recenttopics_qtd` tinyint(1) DEFAULT '5',
  80. `recenttopics_forums` text,
  81. `steamid` varchar(17) DEFAULT NULL,
  82. PRIMARY KEY (`member_id`),
  83. KEY `members_l_display_name` (`members_l_display_name`),
  84. KEY `members_l_username` (`members_l_username`),
  85. KEY `mgroup` (`member_group_id`,`member_id`),
  86. KEY `member_groups` (`member_group_id`,`mgroup_others`),
  87. KEY `bday_day` (`bday_day`),
  88. KEY `bday_month` (`bday_month`),
  89. KEY `member_banned` (`member_banned`),
  90. KEY `members_bitoptions` (`members_bitoptions`),
  91. KEY `ip_address` (`ip_address`),
  92. KEY `failed_login_count` (`failed_login_count`),
  93. KEY `joined` (`joined`),
  94. KEY `fb_uid` (`fb_uid`),
  95. KEY `twitter_id` (`twitter_id`),
  96. KEY `email` (`email`),
  97. KEY `blogs_recache` (`blogs_recache`)
  98. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=7008 ;


Chcąc wgrać bazę danych na serwer aby coś z nią zrobić, np powyczyszczać kolumny czy coś to mam błąd:
  1. #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 'table `members2` (
  2. `member_id` mediumint(8) NOT NULL AUTO_INCREMENT,
  3. `name` ' at line 11


POprawka co do powyższego, bo zamiast normalnego CREATE TABLE to zamieniłem na insert, ale nadal bład jest a nie moge tego rozkminić, co jest zle

wyskakuje mi:
  1. #1054 - Unknown column 'member_id' in 'field list'


Mogę komuś wysłać tę bazę, aby pomógł mi to jakoś zedytować tak aby można było wgrać na forum bez problemów.
mmmmmmm
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 'table `members2` (
kiepson
I tak z tego nic nie rozumiem... To ta emotka mówi sama za siebie:
baaasmiley.gif

Pomógłby ktoś? Podałbym link do tej mojej bazy żeby pobrać i spróbować ją naprawić.
mmmmmmm
Powiedz mi gdzie powyżej masz odwołanie do tabeli members2questionmark.gif Powiem ci gdzie - nigdzie. Więc albo podajesz to co ma być, albo jak już zmieniasz to zmień wszystko. Wprowadzasz chaos.
kiepson
Cytat(mmmmmmm @ 30.03.2015, 18:46:51 ) *
Powiedz mi gdzie powyżej masz odwołanie do tabeli members2questionmark.gif Powiem ci gdzie - nigdzie. Więc albo podajesz to co ma być, albo jak już zmieniasz to zmień wszystko. Wprowadzasz chaos.


chodziło o tabelkę member2, bo dla testu wrzucałem ją na serwer i zmieniłem nazwę aby przez przypadek nie podmieniło obecnej tabelki members
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.