updating db with csv

M

moishyyehuda

#1 If any one familiar with godaddy hosting. They have apparently have
a hosing server i.e.(scripts, html files etc.), and a server for
databases. How can I import from my script, with a csv. if the db is
on a different server than the script server.

#2 I would like to update and insert with the same csv file. Is there
a way to tell the database for some lines to update, and for some
lines to insert.
 
T

Tim Roberts

#1 If any one familiar with godaddy hosting. They have apparently have
a hosing server i.e.(scripts, html files etc.), and a server for
databases. How can I import from my script, with a csv. if the db is
on a different server than the script server.

What does this have to do with either Python or MySQL?

When you connect to the database, you have to specify a hostname. As long
as you provide the right one, it doesn't matter where your script runs.
#2 I would like to update and insert with the same csv file. Is there
a way to tell the database for some lines to update, and for some
lines to insert.

Not in standard SQL. MySQL supports a REPLACE extension that does an
UPDATE if the key already exists, and an INSERT if it does not. There is
also an extension clause to the INSERT statement called "ON DUPLICATE KEY
UPDATE xxx" that might do what you want.
 
C

Captain Paralytic

| Not in standard SQL. MySQL supports a REPLACE extension that does
an
| UPDATE if the key already exists, and an INSERT if it does not.
There is
| also an extension clause to the INSERT statement called "ON
DUPLICATE KEY
| UPDATE xxx" that might do what you want.
| --
| Tim Roberts, (e-mail address removed)
| Providenza & Boekelheide, Inc.

No Tim, that is not correct. the REPLACE extension does not do an
update, it does a replace. It delets the old record and inserts a new
one. The INSERT...ON DUPLICATE KEY UPDATE... does an update. So a
REPLACE will remove all existing field values not referenced in the
statement, whilst an INSERT...ON DUPLICATE KEY UPDATE... will preserve
them. Also REPLACE will make a TIMESTAMP column which has a DEFAULT
CURRENT_TIMESTAMP setting work like one which has ON UPDATE
CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP setting.
 
T

Tim Roberts

Captain Paralytic said:
| Not in standard SQL. MySQL supports a REPLACE extension that does
| an UPDATE if the key already exists, and an INSERT if it does not.
| There is also an extension clause to the INSERT statement called
| "ON DUPLICATE KEY UPDATE xxx" that might do what you want.

No Tim, that is not correct. the REPLACE extension does not do an
update, it does a replace. It delets the old record and inserts a new
one. The INSERT...ON DUPLICATE KEY UPDATE... does an update. So a
REPLACE will remove all existing field values not referenced in the
statement, whilst an INSERT...ON DUPLICATE KEY UPDATE... will preserve
them. Also REPLACE will make a TIMESTAMP column which has a DEFAULT
CURRENT_TIMESTAMP setting work like one which has ON UPDATE
CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP setting.

Thanks for the correction; that's an important difference. I'm a Postgres
guy; if I had noticed this was cross-posted to c.d.mysql as well as
comp.lang.python, I probably would have kept quiet.
 
C

Captain Paralytic

Thanks for the correction; that's an important difference. I'm a Postgres
guy; if I had noticed this was cross-posted to c.d.mysql as well as
comp.lang.python, I probably would have kept quiet.

But then you wouldn't have learned about this important difference. I
too learn a lot when I give what I think is a correct answer and then
have someone else explain what really happens.

The wonder of usenet.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top