[MYSQL 5] SELECT geeft geen rijen, TRUNCATE wel

Pagina: 1
Acties:

  • geenstijl
  • Registratie: Juli 2005
  • Niet online
Een tabel (InnoDB) probeer ik via een sp te vullen
De code in deze sp is:
MySQL:
1
2
3
INSERT INTO tabel (col1, col2)
SELECT col1, col2
FROM tabel2

Indien ik deze code, buiten de SP, aanroep in MySQL Query Browser wordt de tabel "tabel1" netjes gevuld.
Indien ik echter de SP aanroep, krijg ik na de aanroep via een SELECT * FROM tabel1 geen rows terug.
Roep ik daarna vervolgens TRUNCATE "tabel1" aan,krijg ik de volgende melding:
Query OK, 171 rows affected (dit zijn het aantal rows dat ook gevuld zou moeten zijn)

Zover ik weet zou dan TRUNCATE toch ook geen affected rows terug moeten geven?
Zie ik iets over het hoofd?
Heeft het misschien iets te maken met een bepaalde log?
Overigens heb ik reeds de database opnieuw aangemaakt en zelfs MySQL opnieuw geinstalleerd.

[ Voor 3% gewijzigd door geenstijl op 06-06-2006 23:26 ]


  • user109731
  • Registratie: Maart 2004
  • Niet online
SQL:
1
SELECT * FROM tabel1


:?

  • geenstijl
  • Registratie: Juli 2005
  • Niet online
Om onduidelijkheid te voorkomen, even de startpost aangepast.
Ik doe dus uiteraard gewoon een SELECT * FROM tabel1 :)

[ Voor 34% gewijzigd door geenstijl op 06-06-2006 23:28 ]


  • user109731
  • Registratie: Maart 2004
  • Niet online
Wat doet een COUNT? En hoeveel rijen geeft DELETE terug ipv TRUNCATE?

[ Voor 48% gewijzigd door user109731 op 06-06-2006 23:33 ]


  • geenstijl
  • Registratie: Juli 2005
  • Niet online
In onderstaande volgorde uitgevoerd:
SELECT * FROM table --> 0 rows
SELECT COUNT(*) FROM table --> 0 rows
DELETE FROM table --> 0 rows
TRUNCATE table --> 171 rows affected

Indien ik overigens na de TRUNCATE table nog een keer TRUNCATE table doe krijg ik altijd: 1 row affected, hoevaak ik de TRUNCATE ook blijf aanroepen.

[ Voor 45% gewijzigd door geenstijl op 06-06-2006 23:36 ]


  • user109731
  • Registratie: Maart 2004
  • Niet online
TRUNCATE geeft, in tegenstelling tot DELETE, niet het aantal gedelete rows weer he, volgens de manual. De tabel word gedropped en opnieuw aangemaakt, dat verklaart misschien waarom er 1 row affected is

Ik denk dat er niks in de tabel gezet word als COUNT en SELECT niets teruggeven. Probeer eens een simpele, handmatige INSERT query, en kijk wat bovenstaande functies teruggeven. col1 en col2 bestaan ook wel in tabel1? Misschien moet je de tabelnamen erbij zetten als je cols dezelfde namen hebben?
SQL:
1
2
3
INSERT INTO tabel1 (tabel1.col1, tabel1.col2)
SELECT tabel2.col1, tabel2.col2
FROM tabel2


Probeer anders eens zoiets:
SQL:
1
SELECT * INTO tabel1 FROM tabel2

Als dat werkt zit er iig wat met je INSERT-query fout :)

[ Voor 71% gewijzigd door user109731 op 06-06-2006 23:55 ]


  • geenstijl
  • Registratie: Juli 2005
  • Niet online
Pff, soms maak je zulke stomme fouten 8)7
De SP werd 2x aangeroepen wat de problemen veroorzaakte, stom stom stom.
In ieder geval bedankt voor het meedenken :)

Off-topic:
Overigens vraag ik mij wel af waarom bij de ene "getruncate table" een truncate aanroep 0 rows affected terug geeft en bij de andere "getruncate table" 1 rows affected.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik denk dat de truncate zo slim is dat hij niet nogmaal truncate als de tabel al leeg is.

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1