Bekijk Volledige Versie : Tabel importeren
Nico Schuyt
03/05/04, 16:45
Is er een eenvoudige manier om de data van tabel A toe te voegen aan tabel
B?
(Beide tabellen hebben dezelfde structuur)
'SELECT * FROM ... INTO OUTFILE ..' (om daarna te importeren met LOAD DATA
INFILE) loopt vast op "'Access denied for user: 'nicoschuyt@%' (Using
password: YES)". Schijnt iets met File privileges te maken te hebben.
Alternatief zou wellicht zijn om regel voor regel aan de andere tabel
toevoegen, maar dat lijkt me nodeloos ingewikkeld.
Nico
Jaap-Andre de Hoop
03/05/04, 17:05
In article <40965a23$0$65913$a344fe98@news.wanadoo.nl>, "Nico Schuyt" <nschuyt@hotmail.com> wrote:
>Is er een eenvoudige manier om de data van tabel A toe te voegen aan tabel
>B?
>(Beide tabellen hebben dezelfde structuur)
>'SELECT * FROM ... INTO OUTFILE ..' (om daarna te importeren met LOAD DATA
>INFILE) loopt vast op "'Access denied for user: 'nicoschuyt@%' (Using
>password: YES)". Schijnt iets met File privileges te maken te hebben.
>Alternatief zou wellicht zijn om regel voor regel aan de andere tabel
>toevoegen, maar dat lijkt me nodeloos ingewikkeld.
gecombineerde insert_select:
voor mysql:
http://dev.mysql.com/doc/mysql/en/INSERT_SELECT.html
With INSERT ... SELECT, you can quickly insert many rows into a table from one
or many tables.
Jaap-Andre, die benieuwd hoe snel quickly is.
Jan Reilink
03/05/04, 18:55
Hoi Nico ;)
Nico Schuyt wrote:
> Is er een eenvoudige manier om de data van tabel A toe te voegen aan tabel
> B?
> (Beide tabellen hebben dezelfde structuur)
> 'SELECT * FROM ... INTO OUTFILE ..' (om daarna te importeren met LOAD DATA
> INFILE) loopt vast op "'Access denied for user: 'nicoschuyt@%' (Using
> password: YES)". Schijnt iets met File privileges te maken te hebben.
> Alternatief zou wellicht zijn om regel voor regel aan de andere tabel
> toevoegen, maar dat lijkt me nodeloos ingewikkeld.
>
Vergeet er niet bij te vertellen dat web- en MySQL server gescheiden
systemen zijn. Zoals ik intern al antwoordde werkt INTO OUTFILE alleen op de
MySQL server zelf (localhost):
<http://dev.mysql.com/doc/mysql/en/SELECT.html>, Ongeveer halverwege de pagina:
| "The SELECT ... INTO OUTFILE 'file_name' form of SELECT writes
| the selected rows to a file. The file is created on the server
| host, so you must have the FILE privilege to use this form of
| SELECT. The file cannot already exist, which among other things
| prevents database tables and files such as `/etc/passwd' from
| being destroyed. The SELECT ... INTO OUTFILE statement is
| intended primarily to let you very quickly dump a table on the
| server machine. If you want to create the resulting file on
| some host other than the server host, you can't use SELECT ...
| INTO OUTFILE."
Groeten, Jan
(@home)
--
/"\ ASCII Ribbon Campaign
\ / No HTML in mail or news!
X
/ \ Dutch Security Information Network: http://www.dsinet.org/
I <40965a23$0$65913$a344fe98@news.wanadoo.nl>, Nico Schuyt skrev:
> Is er een eenvoudige manier om de data van tabel A toe te voegen aan tabel
> B?
> (Beide tabellen hebben dezelfde structuur)
> 'SELECT * FROM ... INTO OUTFILE ..' (om daarna te importeren met LOAD DATA
> INFILE) loopt vast op "'Access denied for user: 'nicoschuyt@%' (Using
> password: YES)". Schijnt iets met File privileges te maken te hebben.
> Alternatief zou wellicht zijn om regel voor regel aan de andere tabel
> toevoegen, maar dat lijkt me nodeloos ingewikkeld.
Ik ben zelf fan van mysqldump:
$ mysqldump -e -c -h hostname -u username -p -t -q -Q \
fromdatabase fromtable | mysql -h tohostname -u username -p todatabase
doet precies wat jij wilt. Twee keer wachtwoord invullen.
dag, Wouter (alles op 1 regel dus)
--
:wq mail uws@xs4all.nl
it's the one fatal flaw :: let us swallow you all, you all -- gomez
Nico Schuyt
03/05/04, 21:05
Jan Reilink wrote:
> Hoi Nico ;)
> Nico Schuyt wrote:
>> 'SELECT * FROM ... INTO OUTFILE ..' (om daarna te importeren met
>> LOAD DATA INFILE) loopt vast op "'Access denied for user:
>> 'nicoschuyt@%' (Using password: YES)". Schijnt iets met File
>> privileges te maken te hebben. Alternatief zou wellicht zijn om
>> regel voor regel aan de andere tabel toevoegen, maar dat lijkt me
>> nodeloos ingewikkeld.
> Vergeet er niet bij te vertellen dat web- en MySQL server gescheiden
> systemen zijn. Zoals ik intern al antwoordde werkt INTO OUTFILE
> alleen op de MySQL server zelf (localhost):
Duidelijk.
Bedankt!
Nico
Nico Schuyt
03/05/04, 21:05
uws wrote:
> Nico Schuyt skrev:
>> Is er een eenvoudige manier om de data van tabel A toe te voegen aan
>> tabel B?
> Ik ben zelf fan van mysqldump:
> $ mysqldump -e -c -h hostname -u username -p -t -q -Q \
> fromdatabase fromtable | mysql -h tohostname -u username -p
> todatabase
> doet precies wat jij wilt. Twee keer wachtwoord invullen.
Ehhh, dat is waarschijnlijk alleen uitvoerbaar in een Linux-omgeving? Wat ik
zoek zou ook te gebruiken moeten zijn in een PHP-scriptje op een Windows
server (en dan zonder wachtwoorden invullen :-).
Nico
Nico Schuyt
03/05/04, 21:05
Jaap-Andre de Hoop wrote:
> Nico Schuyt wrote:
>> Is er een eenvoudige manier om de data van tabel A toe te voegen aan
>> tabel B?
> gecombineerde insert_select:
> voor mysql:
> http://dev.mysql.com/doc/mysql/en/INSERT_SELECT.html
> With INSERT ... SELECT, you can quickly insert many rows into a table
> from one or many tables.
Dat lijkt erg veel op wat ik zoek!
Bedankt!!
Nico
Ronald Klip
03/05/04, 22:15
Nico Schuyt schreef:
> uws wrote:
> > Nico Schuyt skrev:
> >> Is er een eenvoudige manier om de data van tabel A toe te voegen aan
> >> tabel B?
>
> > Ik ben zelf fan van mysqldump:
> > $ mysqldump -e -c -h hostname -u username -p -t -q -Q \
> > fromdatabase fromtable | mysql -h tohostname -u username -p
> > todatabase
> > doet precies wat jij wilt. Twee keer wachtwoord invullen.
>
> Ehhh, dat is waarschijnlijk alleen uitvoerbaar in een Linux-omgeving?
mysqldump zit ook in de windows-distributie (kijk maar in de map bin).
> Wat ik
> zoek zou ook te gebruiken moeten zijn in een PHP-scriptje op een Windows
> server (en dan zonder wachtwoorden invullen :-).
Dan moet je achter -p meteen het wachtwoord plaatsen: -p wachtwoord -t
<?php
exec('mysqldump etc. ');
?>
--
groet, Ronald
Ronald Klip
03/05/04, 22:15
Ronald Klip schreef:
>
> <?php
> exec('mysqldump etc. ');
-------^
/pad/naar/mysql/bin/mysqldump
> ?>
--
groet, Ronald
Jan Reilink
03/05/04, 22:35
Ronald Klip wrote:
> Nico Schuyt schreef:
>
>>uws wrote:
>>
>>>Nico Schuyt skrev:
>>>
>>>>Is er een eenvoudige manier om de data van tabel A toe te voegen aan
>>>>tabel B?
>>
>>>Ik ben zelf fan van mysqldump:
>>> $ mysqldump -e -c -h hostname -u username -p -t -q -Q \
>>> fromdatabase fromtable | mysql -h tohostname -u username -p
>>>todatabase
>>>doet precies wat jij wilt. Twee keer wachtwoord invullen.
>>
>>Ehhh, dat is waarschijnlijk alleen uitvoerbaar in een Linux-omgeving?
>
> mysqldump zit ook in de windows-distributie (kijk maar in de map bin).
>
Nico's situatie is alsvolgt:
a) Windows 2000 webserver *zonder* MySQL / mysqladmin
b) MySQL 4.0.17 MySQL server, Linux.
Ik weet niet hoe goed MySQL overweg kan met embedded queries (en indien ja,
hoe makkelijk dit te scripten is), maar als je data uit table A wilt
inserten in table B, is het dan het volgende niet mogelijk:
<mode mysql_query_n00b="on">
INSERT INTO $table_B WHERE (SELECT * from $table_A) = 1;
<mode mysql_query_n00b="off">
Nu brabbel ik maar iets ;), ik denk dat een expert hier wel een zinnige
reactie op kan geven. Ik wil alleen maar de situatie schetsen.
Groeten, Jan
--
/"\ ASCII Ribbon Campaign
\ / No HTML in mail or news!
X
/ \ Dutch Security Information Network: http://www.dsinet.org
I <MPG.1b00c43dd954c5e69897b7@news.xs4all.nl>, Ronald Klip skrev:
><?php
> exec('mysqldump etc. ');
> ?>
Ik vraag me af of dat gaat werken met een pipe.
dag, Wouter
--
:wq mail uws@xs4all.nl
and it's you i see :: but you don't see me -- coldplay
Ronald Klip
04/05/04, 12:55
Jan Reilink schreef:
> Ronald Klip wrote:
> >>>Nico Schuyt skrev:
> >>>
> >>>>Is er een eenvoudige manier om de data van tabel A toe te voegen aan
> >>>>tabel B?
>
> Nico's situatie is alsvolgt:
> a) Windows 2000 webserver *zonder* MySQL / mysqladmin
> b) MySQL 4.0.17 MySQL server, Linux.
>
> Ik weet niet hoe goed MySQL overweg kan met embedded queries (en indien ja,
> hoe makkelijk dit te scripten is), maar als je data uit table A wilt
> inserten in table B, is het dan het volgende niet mogelijk:
>
> <mode mysql_query_n00b="on">
> INSERT INTO $table_B WHERE (SELECT * from $table_A) = 1;
> <mode mysql_query_n00b="off">
Aha, dus de tabellen waar we het over hebben zitten gewoon in 1
database? Dan moet je een heel eind komen met het door Jaap-André
genoemde INSERT INTO ... SELECT ... WHERE ...
--
groet, Ronald
Nico Schuyt
04/05/04, 14:55
Jan Reilink wrote:
>>>> Nico Schuyt skrev:
> Ik weet niet hoe goed MySQL overweg kan met embedded queries (en
> indien ja, hoe makkelijk dit te scripten is), maar als je data uit
> table A wilt inserten in table B, is het dan het volgende niet
> mogelijk:
>
> <mode mysql_query_n00b="on">
> INSERT INTO $table_B WHERE (SELECT * from $table_A) = 1;
> <mode mysql_query_n00b="off">
"INSERT INTO A SELECT * FROM B" (suggestie Jaap-Andre de Hoop) deed exact
wat ik nodig had :-)
Nico
Nico Schuyt
04/05/04, 15:05
Ronald Klip wrote:
> mysqldump zit ook in de windows-distributie (kijk maar in de map bin).
Klopt! Weet nog niet of het ook op de (remote) server staat.
>> Wat ik
>> zoek zou ook te gebruiken moeten zijn in een PHP-scriptje op een
>> Windows server (en dan zonder wachtwoorden invullen :-).
> Dan moet je achter -p meteen het wachtwoord plaatsen: -p wachtwoord -t
> <?php
> exec('mysqldump etc. ');
Zal ik eens proberen!
Bedankt.
Nico