User not logged in - login - register
Home Calendar Books School Tool Photo Gallery Message Boards Users Statistics Advertise Site Info
go to bottom | |
 Message Boards » » Copying online MySQL data to local MS SQL Page [1]  
spöokyjon

18617 Posts
user info
edit post

I'm in the process of rewriting some terrible software we've been using at work for, oh, about five years. It keeps track of customers in a loyalty program, handles adding/updating contact information, exciting stuff like that. It's pretty much done (in php/MySQL), but some of the data needs to be copied on a regular basis (doesn't need to be realtime) to the local server (not accessible from the internet, just from the LAN) which stores this information for use at the POS (in MS SQL).

Here's how the existing system does this: somebody has been manually copying/pasting this into the local database. For five years. Seriously. Obviously, this is riddled with problems--data is copied incorrectly, data isn't copied often enough, data is missing, etc.

I have two needs: 1) to get a complete copy of the MySQL data into MS SQL as soon as possible, hopefully via some non-painful means (painful meaning ctrl-c, ctrl-v, repeat 15,000 times). I know less than nothing about MS SQL. I tried saving the appropriate fields as a tab delimited text file and importing that, which worked, but every field was imported as varchar(8000). I changed the columns to the appropriate data types (mostly varchars and datetimes), but our POS system didn't like that (in that it couldn't find anybody in the system anymore).

2) I need to come up with a (hopefully) non-kludgy means of automating this process for the future. Ideally something that would be automated, or, barring that, require only one or two steps on my part each time.

Any recommendations or ideas?

tl;dr I need to copy data from MySQL to MS SQL halp

6/13/2010 4:40:12 PM

Talage
All American
5091 Posts
user info
edit post

How many tables/fields are we talking about here? My first thought would be just to write some quick code to read in the MY SQL data row by row and insert it into the MS SQL database

6/13/2010 4:48:47 PM

spöokyjon

18617 Posts
user info
edit post

It's not a huge amount, about 3000 rows with 8 fields each.

6/13/2010 4:49:50 PM

Talage
All American
5091 Posts
user info
edit post

There are a bunch of ways you could do this...what languages do you actually know? If you can deal with MySQL then you can probably work with MS SQL enough to accomplish this. The two SQL languages are mostly the same for basic functionality.

6/13/2010 4:58:53 PM

spöokyjon

18617 Posts
user info
edit post

I'm comfortable working with php, C#, and Java, I guess. I've only done database stuff in php, but I'm not opposed to learning something new.

6/13/2010 5:04:59 PM

Novicane
All American
15412 Posts
user info
edit post

mySQLyog could do this right? It can export one table as CSV/Excel/text/whatever you want pretty much.

You could just figure out how to import into MS SQL from a external file and your gg.

[Edited on June 13, 2010 at 6:00 PM. Reason : s]

6/13/2010 5:59:36 PM

qntmfred
retired
40543 Posts
user info
edit post

SSIS

[Edited on June 13, 2010 at 7:47 PM. Reason : http://thewolfweb.com/message_topic.aspx?topic=592083]

6/13/2010 7:43:58 PM

Wolfmarsh
What?
5975 Posts
user info
edit post

^ and the odbc driver for mysql.

6/13/2010 8:07:35 PM

evan
All American
27701 Posts
user info
edit post

SSIS is pretty nifty

although, despite being a recent .NET convert, i still despise everything that is MSSQL. :shudder:

6/14/2010 2:40:52 AM

spöokyjon

18617 Posts
user info
edit post

I don't know why I was trying to do this with a file downloaded from our web server. I ended up downloading the MySQL drivers for .net and made a program to get the data from our hosted database and insert it into our local database. Took all of 10 minutes to write and I just have to run it in the future any time I need to refresh the data. Thanks for the suggestions!

6/20/2010 11:23:31 AM

spöokyjon

18617 Posts
user info
edit post

Also, here's a tidbit from the code I'm replacing:

	if(!request.getParameter("home_phone").equals(""))
strHome_phone=request.getParameter("home_phone");

if(!request.getParameter("home_phone1").equals(""))
strHome_phone+=request.getParameter("home_phone1");

if(!request.getParameter("home_phone2").equals(""))
strHome_phone+=request.getParameter("home_phone2");

if(!request.getParameter("mobile_phone").equals(""))
strMob_phone=request.getParameter("mobile_phone");

if(!request.getParameter("mobile_phone1").equals(""))
strMob_phone+=request.getParameter("mobile_phone1");

if(!request.getParameter("mobile_phone2").equals(""))
strMob_phone+=request.getParameter("mobile_phone2");

if(!request.getParameter("other_phone").equals(""))
strOth_phone=request.getParameter("other_phone");

if(!request.getParameter("other_phone1").equals(""))
strOth_phone+=request.getParameter("other_phone1");

if(!request.getParameter("other_phone2").equals(""))
strOth_phone+=request.getParameter("other_phone2");


You know, just in case the customer has 9 phone numbers.

6/20/2010 1:59:29 PM

qntmfred
retired
40543 Posts
user info
edit post

i like how it's appending one after another into a string too, rather than separate strings

6/20/2010 4:51:17 PM

evan
All American
27701 Posts
user info
edit post

i despise people who use underscores in their variable names

also, what happens if, say, home_phone and home_phone1 both have values? won't you end up with something like "(919) 555-1212(919) 666-1313"?

6/20/2010 5:49:44 PM

GenghisJohn
bonafide
10243 Posts
user info
edit post

i don't know, i've started using underscores more often now instead of camelCase

just seems cleaner to me for some reason

6/20/2010 5:53:40 PM

volex
All American
1758 Posts
user info
edit post

nothing like making sure you don't append empty strings to something

6/20/2010 7:30:27 PM

qntmfred
retired
40543 Posts
user info
edit post

haha yeah

6/20/2010 8:36:02 PM

GenghisJohn
bonafide
10243 Posts
user info
edit post

lol

6/20/2010 8:41:03 PM

 Message Boards » Tech Talk » Copying online MySQL data to local MS SQL Page [1]  
go to top | |
Admin Options : move topic | lock topic

© 2024 by The Wolf Web - All Rights Reserved.
The material located at this site is not endorsed, sponsored or provided by or on behalf of North Carolina State University.
Powered by CrazyWeb v2.38 - our disclaimer.