Avatar billede martin_shearer Nybegynder
05. september 2011 - 14:51 Der er 9 kommentarer og
1 løsning

Hvordan flytter jeg data ?

Hej

har brug for lidt hjælp. jeg har noget data i en database, jeg skal ha smidt over i en anden tabel. men jeg er ikke sikker på hvordan det skal gøres- så håber nogen kan hjælpe mig her.

fra f_users skal jeg ha kopiret:
user_id, user_name, user_password, user_admin_password, user_email, user_hide_email, user_location, user_birthdate, user_msn, user_web, user_theme, user_offset    user_avatar, user_posts, user_threads, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status

til fB_users

men i forbindelse med at den skal flytte dataerne, skal den jo først lige tjekke om overstående tabeller allerede findes i f_users og hvis de findes, skal den selv smide dataerne ind i de felter.

nogen der kan hjælpe mig, med at bikse en kode sammen ?
Avatar billede martin_shearer Nybegynder
05. september 2011 - 16:42 #1
har forsøgt bl.a. med

INSERT INTO fB_users SELECT user_id, user_name, user_password, user_admin_password, user_email, user_hide_email, user_location, user_birthdate, user_msn, user_web, user_theme, user_offset, user_avatar, user_posts, user_threads, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status FROM f_users

men det vil ikke virke.
Avatar billede arne_v Ekspert
05. september 2011 - 16:49 #2
Hvis de skal over i en tom tabel eller en tabel uden overlap er det nemt:

INSERT INTO nytabel SELECT * FROM gltabel

Hvis du ret konsekvent vil opdatere data saa kan du proeve:

INSERT INTO nytabel SELECT * FROM gltabel ON DUPLICATE KEY UPDATE ...

se http://dev.mysql.com/doc/refman/5.5/en/insert-select.html for mre info.

Hvis din logik er mere kompleks skal du nok have skrevt t program til det.
Avatar billede martin_shearer Nybegynder
05. september 2011 - 16:54 #3
Problemet er jo at der ik er samme antalt felter i den gamle og nye tabel.

derfor siger INSERT INTO fB_users SELECT user_id, user_name, user_password, user_admin_password, user_email, user_hide_email, user_location, user_birthdate, user_msn, user_web, user_theme, user_offset, user_avatar, user_posts, user_threads, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status FROM f_users

#1136 - Column count doesn't match value count at row 1

her er jeg bare lost.
Avatar billede arne_v Ekspert
05. september 2011 - 17:04 #4
Det er nemt at fixe:

INSSERT INTO nytabel(f1,...,fn) SELECT f1,...,fn FROM gltabel ...
Avatar billede martin_shearer Nybegynder
05. september 2011 - 17:05 #5
den er jeg ik helt med på. hvad står f1 for eller skal jeg blot køre din kode ?
Avatar billede martin_shearer Nybegynder
05. september 2011 - 17:10 #6
har forsøgt med denne. virkede heller ik

INSSERT INTO fB_users(user_id, user_name, user_password, user_admin_password, user_email, user_hide_email, user_location, user_birthdate, user_msn, user_web, user_theme, user_offset, user_avatar, user_posts, user_threads, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status) SELECT user_id, user_name, user_password, user_admin_password, user_email, user_hide_email, user_location, user_birthdate, user_msn, user_web, user_theme, user_offset, user_avatar, user_posts, user_threads, user_joined, user_lastvisit, user_ip, user_rights, user_groups, user_level, user_status FROM f_users

#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 'INSSERT INTO fusionB16d5_users(user_id, user_name, user_password, user_admin_pas' at line 1
Avatar billede arne_v Ekspert
05. september 2011 - 19:02 #7
Der er kun 1 S i INSERT
Avatar billede Dark-Creation Nybegynder
06. september 2011 - 09:47 #8
ellers eventuelt, prøv at gå ind i din tabel som du gerne vil have flyttet, derefter gå til export/eksporter, og så vælg ALLE i de rækker der nu er. og så download SQL filen og gem på dit skrive-bord, derefter kan du så gå ind i den nye og så derefter gå ind i insert/indsæt og uploade din sql fil der, vis dette virker, burde den meget gerne gøre det automatisk, mener jeg da. kommer an på vilken DB du bruger,

(SKAL LIGE SIGES AT JEG IKKE ER SIKKER I DENNE HER SAG, HAR NEMLIG MODIFICERET MIN DB I KODERNE. SÅ MIN ER MODDED KAN DU GODT KALDE DET... MED ANDRE ORD. PRØV OG SÅ GIV SVAR VIS IKK VIRKER...)
Avatar billede martin_shearer Nybegynder
06. september 2011 - 10:27 #9
@Arne_V

tak smid lige et svar. fik det fikset med din hjælp ;)
Avatar billede arne_v Ekspert
06. september 2011 - 15:04 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester