Ga naar inhoud

Waar is mijn TEMPORARY TABLE?


anoniem

Aanbevolen berichten

Ik heb er weer eentje :D Ik gebruik phpMyAdmin 2.5.4 en mySql 4.0.16 Ik heb hetvolgende stukje Sql: DROP TABLE IF EXISTS alvifa; CREATE [b:7f4cd4c685]TEMPORARY[/b:7f4cd4c685] TABLE alvifa (Naam VARCHAR(20), Leeftijd INT(3)) TYPE=MyISAM; INSERT INTO alvifa(Naam,Leeftijd) SELECT table2.Naam, table2.Leeftijd FROM table2 LEFT JOIN table1 ON table2.Naam = table1.Naam WHERE table1.Naam IS NULL ORDER BY Leeftijd; Dit stukje sql wilt voor geen sodemieter werken als ik dit invoer in phpMyAdmin als geheel. Als ik dit doe in mySql zelf dan heb ik geen probleem. De tijdelijke tabel wordt aagemaakt en netjes gevuld met het resultaat van het SELECT statement. SELECT * FROM alvifa geeft dus de resultaten weer in mySql zelf. Switch ik weer terug naar phpMyAdmin en type daar SELECT * FROM alvifa dan krijg ik de melding dat alvifa niet bestaat :-? Als ik in phpMyAdmin het per regel laat uitvoeren dan levert hetvolgende geen problemen op: DROP TABLE IF EXISTS alvifa; --> Uw SQL-query is succesvol uitgevoerd CREATE TEMPORARY TABLE alvifa (Naam VARCHAR(20), Leeftijd INT(5)) TYPE=MyISAM; --> Uw SQL-query is succesvol uitgevoerd SELECT * FROM alvifa; --> table alvifa doesn't exist Dit vind ik dus raar, want daarnet krijg ik nog netjes te zien dat alvifa succelvol is gemaakt. Wat doe ik verkeerd en/of zie ik over het hoofd?
Link naar reactie
Dit is volgens mij niet waar wat je zegt. Ik zit in MySql en voer heel de riedel in. Vervolgens type ik SELECT * FROM alvifa; Ik krijg netjes te zien wat ik moet zien. Ik ga naar phpMyAdmin en voer daar in: SELECT * FROM alvifa; Dan krijg ik te zien: #1146 - Table 'alvifa' doesn't exist [b:10a573207c]error #1146 staat voor: define ER_NO_SUCH_TABLE[/b:10a573207c] Ik ga meteen weer terug naar MySql en voer weer in: SELECT * FROM alvifa; En ik krijg alles weer netjes te zien. Dus die tabel wordt niet gedropt, want dat krijg je, volgens mij, alleen maar voor elkaar als ik zeg DROP TABLE alvifa; of ik verbreek de connectie met de MySql database. Er is volgens mij iets anders aan de hand, maar wat precies weet ik niet.
Link naar reactie
Dan bestaat die tabel niet meer. Maar dat zei ik hierboven al ;) Ik heb al heel wat voorbeelden gevonden op internet, maar ik zie toch echt niet wat ik fout doe. Interpretereer ik CREATE TEMPORARY TABLE dan verkeerd? Ik heb maar een tijdelijke tabel nodig waar ik weer een SELECT statement op loslaat. Dan mag die tabel van mij verdwijnen.
Link naar reactie
Een tijdelijke table bestaat over het algemeen alleen binnen een bepaalde connectie en is dus ook niet te delen met andere sessies (ik zeg even "over het algemeen" omdat niet alle databases daar op dezelfde manier mee om hoeven te gaan). Als je de connectie verbreekt is je tijdelijke table dus ook weg. Via de shell werk je binnen dezelfde sessie/connectie en phpMyAdmin maakt blijkbaar telkens een nieuwe connectie (of pakt er eentje uit de pool) voor elk uit te voeren statement. De oplossing is dus simpel: gebruik een 'gewone' table en drop deze weer als je klaar bent.
Link naar reactie
[quote:b7964a752e="Annie"]Een tijdelijke table bestaat over het algemeen alleen binnen een bepaalde connectie en is dus ook niet te delen met andere sessies (ik zeg even "over het algemeen" omdat niet alle databases daar op dezelfde manier mee om hoeven te gaan). Als je de connectie verbreekt is je tijdelijke table dus ook weg. Via de shell werk je binnen dezelfde sessie/connectie en phpMyAdmin maakt blijkbaar telkens een nieuwe connectie (of pakt er eentje uit de pool) voor elk uit te voeren statement. De oplossing is dus simpel: gebruik een 'gewone' table en drop deze weer als je klaar bent.[/quote:b7964a752e] Thanks voor de uitleg van de TEMP TABLE :D Ik had het dus blijkbaar anders voor ogen dan dat het daadwerkelijk werkt. Ik heb ondertussen idd het zodanig opgelost dat er een gewone table wordt aangemaakt en die daarna wordt gedropt. Moest wel ff de rechten aanpassen, kwam ik na een hoop gevloek achter. De rechten voor TEMP TABLE stond wel aan, maar niet voor een normale TABLE :oops:
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...