Avatar billede a-torsten Nybegynder
15. november 2002 - 12:56 Der er 14 kommentarer og
1 løsning

Kopier fra en tabel til en anden....

Hej...

Søger en SQL-kode som virker i MySql, og som kan følgende:

1 : Vægle alle poster som starter med bogstavet a (ikke casesensetive)
2 : Oprette en tabel ved navn a
3 : Indsætte alle kopierede poster ind i denne nye tabel

Det skal selvfølgelig være ren sql....

-Anders
Avatar billede disky Nybegynder
15. november 2002 - 13:01 #1
Så skal du bruge stored procedures til det.
Avatar billede a-torsten Nybegynder
15. november 2002 - 13:02 #2
Øhh..??

Forklar.. Er lidt blank på det punkt...

Kan man ikke lave en sql-sætning som kan kopieres ind i MySqlFront og derfra køre den..??

-Anders
Avatar billede proaccess Nybegynder
15. november 2002 - 13:17 #3
SELECT * INTO a FROM tabelNavn WHERE feltNavn LIKE 'a%';
Avatar billede disky Nybegynder
15. november 2002 - 13:21 #4
proaccess, er du sikker på det virker ?
Har lige prøvet på min egen DB der meldte den fejl 'near a FROM' osv.
Avatar billede a-torsten Nybegynder
15. november 2002 - 13:22 #5
proaccess.. Den er ikke helt go... :o(
Avatar billede proaccess Nybegynder
15. november 2002 - 13:23 #6
Ja, du har ret disky...  ;0(

Det virker på den måde i Access, og jeg mente det var temmelig standard.
MySQL understøtter SELECT ... INTO OUTFILE ...  Men det er jo noget helt andet...
Avatar billede flse Nybegynder
15. november 2002 - 13:23 #7
Selvfølgelig behøver du ikke stored procedures til det (meget heldigt, da MySQL ikke understøtter den slags endnu).

Prøv med:

INSERT INTO a SELECT * FROM sometable WHERE feltNavn LIKE 'a%';

Forudsat at "a" og "sometable" har samme tabeldefinition, ellers skal du angive felterne eksplicit i både INTO og SELECT.
Avatar billede disky Nybegynder
15. november 2002 - 13:24 #8
a-torsten.

Stored procedures er en større omgang, søg på www.google.com efter tutorials.

Men hvorfor laver du ikke bare en simpel metode i dit programmeringssprog istedet ?
Okay det er lidt langsommere så, men nok nemmere end at skulle lære Stored Procedures, som MySQL vist ikke understøtter i andet end beta udgaven endnu.
Avatar billede a-torsten Nybegynder
15. november 2002 - 13:26 #9
flse.....

Din ser ud til måske at virke.......

Dog skal den oprette tabellen a først... Det mangler din.... :o(
Avatar billede a-torsten Nybegynder
15. november 2002 - 13:29 #10
CREATE TABLE b (
  ord varchar(17) default NULL
) TYPE=MyISAM;
INSERT INTO b SELECT * FROM words_da WHERE ord LIKE 'b%'

Virker.. Kan de skrives sammen..??

-Anders
Avatar billede flse Nybegynder
15. november 2002 - 13:29 #11
a-torsten:

DROP TABLE IF EXISTS a;
CREATE TABLE a (felt1 INT, felt2 INT, felt3 varchar(50));
INSERT INTO a SELECT * FROM sometable WHERE feltNavn LIKE 'a%';
Avatar billede flse Nybegynder
15. november 2002 - 13:31 #12
Anders:

Du kan sagtens skrive dem sammen, bare adskil med semikolons!  Det giver dog samme resultat, som hvis du kører 3 seperate queries/kommandoer mod MySQL da MySQL ikke udfører dem atomart (det kræver stored procs)
Avatar billede a-torsten Nybegynder
15. november 2002 - 13:33 #13
Okay...

Så vil jeg igang med at dele min database op...... :o)

Kaster du ikke et svar..??

_Anders
Avatar billede flse Nybegynder
15. november 2002 - 13:35 #14
"Iøvrigt mener jeg at Karthago bør ødelægges"
Avatar billede a-torsten Nybegynder
15. november 2002 - 13:41 #15
Øhh... Enig ;o)
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