Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

wo kann ich TEMPORARY TABLE in phpMyAdmin sehen?

91 views
Skip to first unread message

Benno Müller

unread,
May 2, 2017, 1:26:31 PM5/2/17
to
hi,

wenn ich diese queries in phpMyAdmin, in einer Db "Zunder" starte


CREATE TEMPORARY TABLE IF NOT EXISTS temp( id mediumint(6), ord VARCHAR(
35 ) );

SELECT GROUP_CONCAT(id), count(*) as count FROM temp
GROUP BY id
HAVING count >= 2;

ALTER TABLE temp ADD UNIQUE INDEX (id);


Wo kann ich die temp-Tabelle sehen?
Es kommen keine Ergebnisse und ich kann nicht sehen, woran das liegt.
("damals konnte ich das" ... #| )


(ich baue grad >10a alte Skripte um, von mysql nach mysqli und)
bin mit mysql >5.7 auf ein "ALTER IGNORE TABLE"-Problem gestossen...

die ursprüngliche query nach "CREATE TEMPORARY..." hieß
ALTER IGNORE TABLE temp ADD UNIQUE INDEX(id)";

hatte hier ein kleines Tutorial gefunden
<http://www.tocker.ca/2013/11/06/the-future-of-alter-ignore-table-syntax.html>

kann mir jemand auf die Sprünge helfen?

Benno

Axel Schwenke

unread,
May 2, 2017, 6:00:20 PM5/2/17
to
On 02.05.2017 19:26, Benno Müller wrote:
> wenn ich diese queries in phpMyAdmin, in einer Db "Zunder" starte
>
> CREATE TEMPORARY TABLE IF NOT EXISTS temp( id mediumint(6), ord VARCHAR( 35
> ) );
>
> Wo kann ich die temp-Tabelle sehen?

Gar nicht. Temporäre Tabellen existieren nur im Kontext einer Session
(vulgo: Verbindung) zwischen MySQL-Server und -Client. Sobald die Session
beendet (die Verbindung getrennt) wird, ist die temporäre Tabelle weg.

Als PHP-Anwendung kann phpMyAdmin aber keine MySQL-Verbindung über
Seitenaufrufe hinweg aufrecht erhalten. Jeder neue HTTP-Seitenaufruf öffnet
eine neue MySQL-Verbindung, die nach dem Ausliefern der Seiteninhalte wieder
geschlossen wird. Deswegen kann man temporäre Tabelle (und User- Variablen,
Session-Variablen etc.) mit phpMyAdmin nur sehr eingeschränkt benutzen. Das
ist einer der Hauptkritikpunkte an phpMyAdmin, der es für ernsthafte
DBA-Tätigkeiten disqualifiziert.

Verwende einen Client, der Verbindungen korrekt managed. Im einfachsten Fall
reicht schon der Kommandozeilen-Client 'mysql'.

Benno Müller

unread,
May 4, 2017, 7:56:52 AM5/4/17
to
Danke für die Erklärung.

Ich schaue sie mir über das Ubuntu-Terminal an, mit
mysql -u root -p
...
USE db_name;
CREATE TEMPORARY TABLE ...

das muss ich damals wohl ooch so jemacht haben ...

Benno


Axel Schwenke

unread,
May 4, 2017, 3:54:11 PM5/4/17
to
On 04.05.2017 13:56, Benno Müller wrote:
> Am 03.05.2017 um 00:00 schrieb Axel Schwenke:
>> On 02.05.2017 19:26, Benno Müller wrote:
>>> wenn ich diese queries in phpMyAdmin, in einer Db "Zunder" starte
>>>
>>> CREATE TEMPORARY TABLE IF NOT EXISTS temp( id mediumint(6), ord VARCHAR( 35
>>> ) );
>>>
>>> Wo kann ich die temp-Tabelle sehen?
>>
>> Gar nicht.
...
>> Verwende einen Client, der Verbindungen korrekt managed. Im einfachsten Fall
>> reicht schon der Kommandozeilen-Client 'mysql'.

> Ich schaue sie mir über das Ubuntu-Terminal an, mit
> mysql -u root -p
> ....
> USE db_name;
> CREATE TEMPORARY TABLE ...

Ja, so sollte das funktionieren. Natürlich kannst du die temporäre Tabelle
nur in der Session/Connection sehen, in der du sie angelegt hast. Für andere
Sessions ist sie nicht vorhanden.

Thomas 'PointedEars' Lahn

unread,
May 5, 2017, 8:21:35 PM5/5/17
to
Axel Schwenke wrote:

> On 02.05.2017 19:26, Benno Müller wrote:
>> wenn ich diese queries in phpMyAdmin, in einer Db "Zunder" starte
>>
>> CREATE TEMPORARY TABLE IF NOT EXISTS temp( id mediumint(6), ord VARCHAR(
>> 35 ) );
>>
>> Wo kann ich die temp-Tabelle sehen?
>
> Gar nicht.

Faclhs.

> Temporäre Tabellen existieren nur im Kontext einer Session
> (vulgo: Verbindung) zwischen MySQL-Server und -Client. Sobald die Session
> beendet (die Verbindung getrennt) wird, ist die temporäre Tabelle weg.

Richtig.

> Als PHP-Anwendung kann phpMyAdmin aber keine MySQL-Verbindung über
> Seitenaufrufe hinweg aufrecht erhalten. Jeder neue HTTP-Seitenaufruf
> öffnet eine neue MySQL-Verbindung, die nach dem Ausliefern der
> Seiteninhalte wieder geschlossen wird. Deswegen kann man temporäre Tabelle
> (und User- Variablen, Session-Variablen etc.) mit phpMyAdmin nur sehr
> eingeschränkt benutzen. Das ist einer der Hauptkritikpunkte an phpMyAdmin,
> der es für ernsthafte DBA-Tätigkeiten disqualifiziert.

Das ist grober Unfug.

Und das hat Dir bestimmt schon mal jemand geschrieben.

Auf Deutsch:

<http://php.net/manual/de/features.persistent-connections.php>

<https://docs.phpmyadmin.net/de/latest/config.html#cfg_PersistentConnections>

kopfschüttelnd,

--
PointedEars

Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.

Axel Schwenke

unread,
May 8, 2017, 5:40:26 PM5/8/17
to
On 06.05.2017 02:21, Thomas 'PointedEars' Lahn wrote:
> Axel Schwenke wrote:
>
>> On 02.05.2017 19:26, Benno Müller wrote:
>>> wenn ich diese queries in phpMyAdmin, in einer Db "Zunder" starte
>>>
>>> CREATE TEMPORARY TABLE IF NOT EXISTS temp( id mediumint(6), ord VARCHAR(
>>> 35 ) );
>>>
>>> Wo kann ich die temp-Tabelle sehen?
>>
>> Gar nicht.
>
> Faclhs.

Nein, richtig.

>> Als PHP-Anwendung kann phpMyAdmin aber keine MySQL-Verbindung über
>> Seitenaufrufe hinweg aufrecht erhalten. Jeder neue HTTP-Seitenaufruf
>> öffnet eine neue MySQL-Verbindung, die nach dem Ausliefern der
>> Seiteninhalte wieder geschlossen wird. Deswegen kann man temporäre Tabelle
>> (und User- Variablen, Session-Variablen etc.) mit phpMyAdmin nur sehr
>> eingeschränkt benutzen. Das ist einer der Hauptkritikpunkte an phpMyAdmin,
>> der es für ernsthafte DBA-Tätigkeiten disqualifiziert.
>
> Das ist grober Unfug.

Mit Verlaub: Nuhr!

> Auf Deutsch:
>
> <http://php.net/manual/de/features.persistent-connections.php>

Du hättest das vielleicht einfach mal lesen sollen. Gleich im zweiten
Abschnitt sagen sie da genau das, was ich auch gesagt habe.

> kopfschüttelnd

Deine Arroganz wäre eventuell erträglich, wenn sie mit Sachkenntnis gepaart
wäre. So bist du einfach nur peinlich.

0 new messages