Πώς δημιουργεί/αποθέτει η MySQL έναν προσωρινό πίνακα; Ο ρόλος των προσωρινών πινάκων MySQL

Πώς να δημιουργήσετε/διαγράψετε έναν προσωρινό πίνακα στο MySQL ; Ποιος είναι ο σκοπός των προσωρινών πινάκων MySQL ;

Προσωρινός πίνακας MySQL

Ο προσωρινός πίνακας MySQL είναι πολύ χρήσιμος όταν πρέπει να αποθηκεύσουμε κάποια προσωρινά δεδομένα.Οι προσωρινοί πίνακες είναι ορατοί μόνο στην τρέχουσα σύνδεση. Όταν η σύνδεση κλείσει, η Mysql θα διαγράψει αυτόματα τον πίνακα και θα απελευθερώσει όλο τον χώρο.

Προσωρινοί πίνακες προστέθηκαν στην έκδοση 3.23 της MySQL. Εάν η έκδοση MySQL σας είναι παλαιότερη από την 3.23, δεν μπορείτε να χρησιμοποιήσετε προσωρινούς πίνακες MySQL. Ωστόσο, τέτοιες παλαιότερες εκδόσεις των υπηρεσιών βάσης δεδομένων MySQL σπάνια χρησιμοποιούνται στις μέρες μας.

Ο προσωρινός πίνακας της MySQL είναι ορατός μόνο στην τρέχουσα σύνδεση. Εάν χρησιμοποιείτε ένα σενάριο PHP για να δημιουργήσετε έναν προσωρινό πίνακα MySQL, ο προσωρινός πίνακας θα καταστρέφεται αυτόματα κάθε φορά που εκτελείται το σενάριο PHP.

Εάν χρησιμοποιείτε άλλο πρόγραμμα-πελάτη MySQL για να συνδεθείτε στον διακομιστή βάσης δεδομένων MySQL για να δημιουργήσετε έναν προσωρινό πίνακα, ο προσωρινός πίνακας θα καταστραφεί μόνο όταν κλείσει το πρόγραμμα-πελάτη. Φυσικά, μπορείτε επίσης να τον καταστρέψετε με μη αυτόματο τρόπο.

Παράδειγμα

Το παρακάτω δείχνει ένα απλό παράδειγμα χρήσης του προσωρινού πίνακα MySQL, ο ακόλουθος κώδικας SQL μπορεί να εφαρμοστεί στη συνάρτηση mysql_query() του σεναρίου PHP.

MySQL的> CREATE TEMPORARY TABLE SalesSummary (- > PRODUCT_NAME VARCHAR (50 )NOT NULL
     - > ,TOTAL_SALES DECIMAL (12 ,2 )NOT NULL DEFAULT 0.00 - > ,avg_unit_price DECIMAL (7 ,2 )NOT NULL DEFAULT 0.00 - > ,total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); 查询OK ,0 行受影响(0.00 秒 
     
     
     

 )

的MySQL > INSERT INTO SalesSummary - > (PRODUCT_NAME ,TOTAL_SALES ,avg_unit_price ,total_units_sold )- > VALUES
     - > ('黄瓜' ,100.25 ,90 ,2 );
     
        

mysql > SELECT * FROM SalesSummary ; + -------------- + ------------- + ---------------- + --- --------------- + | product_name | total_sales | avg_unit_price | total_units_sold | + -------------- + ------------- + ---------------- + --- --------------- + | 黄瓜      | 100.25 | 90.00 | 2 | + -------------- + ------------- + ---------------- + --- --------------- + 1 行中集合(0.00 秒)



                                   

  

Όταν χρησιμοποιείτε την εντολή SHOW TABLES για να εμφανίσετε μια λίστα πινάκων, δεν θα δείτε τον πίνακα SalesSummary.

Εάν τερματίσετε την τρέχουσα συνεδρία MySQL και στη συνέχεια χρησιμοποιήσετε την εντολή SELECT για να διαβάσετε τα δεδομένα από τον προσωρινό πίνακα που δημιουργήθηκε προηγουμένως, θα διαπιστώσετε ότι ο πίνακας δεν υπάρχει στη βάση δεδομένων επειδή ο προσωρινός πίνακας καταστράφηκε κατά την έξοδό σας.


Απόθεση του προσωρινού πίνακα MySQL

Από προεπιλογή, οι προσωρινοί πίνακες καταστρέφονται αυτόματα όταν αποσυνδεθείτε από τη βάση δεδομένων. Εναλλακτικά, μπορείτε να διαγράψετε μη αυτόματα τους προσωρινούς πίνακες εντός της τρέχουσας συνεδρίας MySQL χρησιμοποιώντας την εντολή DROP TABLE .

Το παρακάτω είναι ένα παράδειγμα μη αυτόματης απόθεσης ενός προσωρινού πίνακα:

mysql> CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary
    -> (product_name, total_sales, avg_unit_price, total_units_sold)
    -> VALUES
    -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
mysql>DROP TABLE SalesSummary ; 
mysql >   SELECT * FROM SalesSummary ; 
错误1146 :表'chenweiliang.SalesSummary' 不存在  

Ας ελπίσουμε ότι το άρθρο "Πώς να δημιουργήσετε/διαγράψετε έναν προσωρινό πίνακα στο MySQL; Ο ρόλος των προσωρινών πινάκων στο MySQL" που κοινοποιήθηκε στο ιστολόγιο του Chen Weiliang ( https://www.chenweiliang.com/ ) θα σας φανεί χρήσιμο.

Μη διστάσετε να κοινοποιήσετε τον σύνδεσμο αυτού του άρθρου: https://www.chenweiliang.com/cwl-497.html

Για να ξεκλειδώσετε περισσότερα κρυμμένα κόλπα🔑, καλώς ήρθατε στο κανάλι μας στο Telegram!

Κάντε share και like αν σας αρέσει! Τα share και τα likes σας είναι το συνεχές μας κίνητρο!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Μεταβείτε στην κορυφή