Ρίξτε αρχεία εδώ

SQL upload ( 0 ) x -

Ρυθμίσεις σχετικές με τη σελίδα Πατήστε στη γραμμή για να μεταβείτε στην κορυφή της σελίδας
Πατήστε Ctrl+Enter για εκτέλεση του ερωτήματος Πατήστε Enter για εκτέλεση του ερωτήματος
αύξουσα
φθίνουσα
Ταξινόμηση:
Ανίχνευση λαθών SQL
Μέτρηση
Σειρά εκτέλεσης
Χρόνος που παρήλθε
Ταξινόμηση κατά:
Ομαδοποίηση ερωτημάτων
Αποομαδοποίηση ερωτημάτων
Σύμπτηξη Ανάπτυξη Προβολή ίχνους Απόκρυψη ίχνους Μέτρηση : Χρόνος που παρήλθε :
Σελιδοδείκτες
Ανανέωση
Προσθήκη
Κανένας σελιδοδείκτης
Προσθήκη σελιδοδείκτη
Επιλογές
Ορισμός προεπιλογής





Σύμπτηξη Ανάπτυξη Επανερώτημα Επεξεργασία Εξήγηση Δημιουργία προφίλ Σελιδοδείκτης Το ερώτημα απέτυχε Βάση δεδομένων : Χρόνος ερωτήματος :
Κατάσταση αναζήτησης
Προσαρμοσμένη κατάσταση αναζήτησης.
Κατάσταση αναζήτησης
Τεκμηρίωση Χρήση μόνο εικονιδίων, μόνο κειμένου ή και τα δύο. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Χρήση μόνο εικονιδίων, μόνο κειμένου ή και τα δύο. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Αν θα εμφανίζεται στο χρήστη ένα κουμπί «εμφάνιση όλων (των εγγραφών)». Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Αριθμός γραμμών που θα προβάλονται όταν γίνεται περιήγηση σε κάποιο αποτέλεσμα. Αν το αποτέλεσμα περιέχει περισσότερες γραμμές, θα εμφανίζονται σύνδεσμοι «Προηγούμενο» και «Επόμενο». Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση SMART - π.χ. φθίνουσα ταξινόμηση για στήλες τύπου TIME, DATE, DATETIME και TIMESTAMP, αύξουσα ταξινόμηση στα υπόλοιπα. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Επισήμανση γραμμής που δείχνει ο δείκτης του ποντικιού. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Επισήμανση επιλεγμένων γραμμών. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Επανάληψη κεφαλίδων κάθε Χ κελιά. Το 0 απενεργοποιεί το χαρακτηριστικό. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Μέγιστος αριθμός χαρακτήρων που φαίνεται σε μη αριθμητική στήλη στην προβολή φυλλομετρητή. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Αυτοί είναι οι σύνδεσμοι Επεξεργασία, Αντιγραφή και Διαγραφή. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Αν θα προβάλονται σύνδεσμοι εγγραφής ακόμα και κατά την απουσία μοναδικού κλειδιού. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Προεπιλεγμένη ταξινόμηση για πίνακες με πρωτεύον κλειδί. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Όταν μεταικινήστε μταξύ πινάκων, η ταξινόμηση για κάθε πίανακα απομνημονεύεται. Επαναφορά προεπιλεγμένης τιμής
Τεκμηρίωση Για Επιλογές προβολής Επαναφορά προεπιλεγμένης τιμής
SELECT * FROM `proc`
Πλήρη κείμενα db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8 aggregate
Επεξεργασία Επεξεργασία Αντιγραφή Αντιγραφή Διαγραφή Διαγραφή
DELETE FROM proc WHERE `proc`.`db` = 'tpms_db' AND `proc`.`name` = 'InsertDummyTruckEntries' AND `proc`.`type` = 'PROCEDURE'
tpms_db InsertDummyTruckEntries PROCEDURE InsertDummyTruckEntries SQL CONTAINS_SQL NO DEFINER
BEGIN
    DECLARE i INT DEFAULT 0;
    -- Ορίζουμε τον αριθμό των εγγραφών στις 100000
    DECLARE total_records INT DEFAULT 100000; 
    
    DECLARE start_date DATETIME;
    DECLARE entry_time_val DATETIME;
    DECLARE exit_time_val DATETIME;
    
    -- Μεταβλητές Δεδομένων
    DECLARE plate_prefix CHAR(3);
    DECLARE plate_number INT;
    DECLARE driver_name_val VARCHAR(100);
    DECLARE space_id_val INT; 
    
    -- ΟΡΙΣΜΟΣ ΧΩΡΙΣ ΔΩΜΑΤΙΑ
    DECLARE room_id_val INT DEFAULT 0;
    DECLARE stay_overnight_days_val INT DEFAULT 0;
    
    DECLARE service_plan_val VARCHAR(5);
    DECLARE has_shower_val INT;
    DECLARE has_wash_val INT;
    
    -- ΟΡΙΣΜΟΣ ΠΛΗΡΩΜΕΝΩΝ ΕΓΓΡΑΦΩΝ
    DECLARE is_paid_val INT DEFAULT 1; 
    
    -- Μεταβλητές Κόστους (Βάσει των τιμών που χρησιμοποιεί ο κώδικάς σας)
    DECLARE rate_12hr_park DECIMAL(10, 2) DEFAULT 10.00;
    DECLARE rate_24hr_park DECIMAL(10, 2) DEFAULT 20.00; 
    DECLARE rate_shower DECIMAL(10, 2) DEFAULT 5.00;
    DECLARE rate_wash DECIMAL(10, 2) DEFAULT 40.00;
    
    -- Ορίζουμε την αρχική ημερομηνία (π.χ., 1 χρόνο πίσω)
    SET start_date = DATE_SUB(NOW(), INTERVAL 1 YEAR); 

    -- Βρόχος για 100000 εγγραφές
    WHILE i < total_records DO
        
        -- 1. Τυχαία Πινακίδα, Όνομα
        SET plate_prefix = CONCAT(CHAR(65 + (RAND() * 25)), CHAR(65 + (RAND() * 25)), CHAR(65 + (RAND() * 25)));
        SET plate_number = FLOOR(1000 + (RAND() * 8999));
        SET @license_plate_val = CONCAT(plate_prefix, plate_number);
        
        SET @names = 'NIKOS,GEORGIOS,ANNA,MARIA,DIMITRIS,ELENI,IOANNIS,SOFIA';
        SET @surnames = 'PAPPAS,KARAS,DIMITRIOU,GEORGIOU,VASILIOU,PETRIDIS,IOANNIDIS';
        SET @random_name = SUBSTRING_INDEX(SUBSTRING_INDEX(@names, ',', 1 + FLOOR(RAND() * (LENGTH(@names) - LENGTH(REPLACE(@names, ',', '')) + 1))), ',', -1);
        SET @random_surname = SUBSTRING_INDEX(SUBSTRING_INDEX(@surnames, ',', 1 + FLOOR(RAND() * (LENGTH(@surnames) - LENGTH(REPLACE(@surnames, ',', '')) + 1))), ',', -1);
        SET driver_name_val = CONCAT(@random_surname, ' ', @random_name);

        -- 2. ΛΟΓΙΚΗ ΓΙΑ SPACE_ID: Επιλέγει ένα τυχαίο ID που υπάρχει στον πίνακα parking_spaces (ΔΙΟΡΘΩΣΗ FOREIGN KEY)
        -- ΣΗΜΑΝΤΙΚΗ ΣΗΜΕΙΩΣΗ: Η RAND() σε ΟUTPUT/LIMIT είναι αργή για 100.000 επαναλήψεις. 
        -- Για δοκιμαστικούς σκοπούς, θα χρησιμοποιήσουμε μια πιο γρήγορη μέθοδο τυχαίας επιλογής
        -- εφόσον ο πίνακας parking_spaces έχει συνεχόμενα IDs (1, 2, 3, ... Max_ID)
        
        -- Αρχικά, βρίσκουμε το μέγιστο space_id (εκτελείται μία φορά, εκτός βρόχου)
        -- Επειδή αυτό δεν είναι εφικτό μέσα σε ένα απλό script, επιστρέφουμε στην ασφαλή μέθοδο
        -- απλοποιώντας την επιλογή:
        
        -- Εάν ο πίνακας parking_spaces είναι μικρός, η RAND() είναι OK.
        SELECT space_id INTO space_id_val
        FROM parking_spaces
        ORDER BY RAND()
        LIMIT 1;
        
        -- 3. Τυχαίο Πακέτο & Υπηρεσίες
        SET service_plan_val = IF(RAND() < 0.5, '12hr', '24hr');
        SET has_shower_val = IF(RAND() < 0.4, FLOOR(1 + (RAND() * 3)), 0); 
        SET has_wash_val = IF(RAND() < 0.1, 1, 0); 

        -- 4. Τυχαίες Ώρες Εισόδου & Εξόδου (Όλες στο παρελθόν)
        SET entry_time_val = DATE_ADD(start_date, INTERVAL FLOOR(RAND() * 365 * 24 * 60) MINUTE);
        -- Διάρκεια διαμονής από 6 έως 72 ώρες
        SET exit_time_val = DATE_ADD(entry_time_val, INTERVAL FLOOR(6 + (RAND() * 72)) HOUR); 
        
        -- Εξασφάλιση ότι η έξοδος είναι στο παρελθόν (ώστε να είναι πληρωμένη)
        WHILE exit_time_val > NOW() DO
            SET entry_time_val = DATE_ADD(start_date, INTERVAL FLOOR(RAND() * 365 * 24 * 60) MINUTE);
            SET exit_time_val = DATE_ADD(entry_time_val, INTERVAL FLOOR(6 + (RAND() * 72)) HOUR);
        END WHILE;

        -- 5. Υπολογισμός Κόστους
        SET @parking_base = IF(service_plan_val = '12hr', rate_12hr_park, rate_24hr_park);
        
        SET @shower_cost_val = has_shower_val * rate_shower;
        SET @wash_cost_val = has_wash_val * rate_wash;
        SET @overnight_cost_val = 0.00; -- Σταθερά 0.00 (χωρίς δωμάτια)
        
        SET @services_cost_val = @shower_cost_val + @wash_cost_val;
        
        -- Το συνολικό κόστος είναι η βάση + οι υπηρεσίες
        SET @total_cost_val = @parking_base + @services_cost_val;
        

        -- 6. Εισαγωγή Δεδομένων
        INSERT INTO `truck_entries` 
        (`license_plate`, `driver_name`, `space_id`, `entry_time`, `exit_time`, 
         `service_plan`, `has_shower`, `has_wash`, `has_wash2`, `stay_overnight_days`, 
         `hourly_surcharge_hours`, `parking_cost`, `services_cost`, `total_cost`, `is_paid`, 
         `room_id`, `shower_cost`, `wash_cost`, `overnight_cost`) 
        VALUES (
            @license_plate_val, driver_name_val, space_id_val, entry_time_val, exit_time_val, 
            service_plan_val, has_shower_val, has_wash_val, 0, stay_overnight_days_val, 
            0, @parking_base, @services_cost_val, @total_cost_val, is_paid_val, 
            room_id_val, @shower_cost_val, @wash_cost_val, @overnight_cost_val
        );

        SET i = i + 1;
    END WHILE;
END
root@localhost 2026-06-08 14:22:02 2026-06-08 14:22:02 NO_AUTO_VALUE_ON_ZERO utf8mb4 utf8mb4_unicode_ci utf8mb4_general_ci
BEGIN
    DECLARE i INT DEFAULT 0;
    -- Ορίζουμε τον αριθμό των εγγραφών στις 100000
    DECLARE total_records INT DEFAULT 100000; 
    
    DECLARE start_date DATETIME;
    DECLARE entry_time_val DATETIME;
    DECLARE exit_time_val DATETIME;
    
    -- Μεταβλητές Δεδομένων
    DECLARE plate_prefix CHAR(3);
    DECLARE plate_number INT;
    DECLARE driver_name_val VARCHAR(100);
    DECLARE space_id_val INT; 
    
    -- ΟΡΙΣΜΟΣ ΧΩΡΙΣ ΔΩΜΑΤΙΑ
    DECLARE room_id_val INT DEFAULT 0;
    DECLARE stay_overnight_days_val INT DEFAULT 0;
    
    DECLARE service_plan_val VARCHAR(5);
    DECLARE has_shower_val INT;
    DECLARE has_wash_val INT;
    
    -- ΟΡΙΣΜΟΣ ΠΛΗΡΩΜΕΝΩΝ ΕΓΓΡΑΦΩΝ
    DECLARE is_paid_val INT DEFAULT 1; 
    
    -- Μεταβλητές Κόστους (Βάσει των τιμών που χρησιμοποιεί ο κώδικάς σας)
    DECLARE rate_12hr_park DECIMAL(10, 2) DEFAULT 10.00;
    DECLARE rate_24hr_park DECIMAL(10, 2) DEFAULT 20.00; 
    DECLARE rate_shower DECIMAL(10, 2) DEFAULT 5.00;
    DECLARE rate_wash DECIMAL(10, 2) DEFAULT 40.00;
    
    -- Ορίζουμε την αρχική ημερομηνία (π.χ., 1 χρόνο πίσω)
    SET start_date = DATE_SUB(NOW(), INTERVAL 1 YEAR); 

    -- Βρόχος για 100000 εγγραφές
    WHILE i < total_records DO
        
        -- 1. Τυχαία Πινακίδα, Όνομα
        SET plate_prefix = CONCAT(CHAR(65 + (RAND() * 25)), CHAR(65 + (RAND() * 25)), CHAR(65 + (RAND() * 25)));
        SET plate_number = FLOOR(1000 + (RAND() * 8999));
        SET @license_plate_val = CONCAT(plate_prefix, plate_number);
        
        SET @names = 'NIKOS,GEORGIOS,ANNA,MARIA,DIMITRIS,ELENI,IOANNIS,SOFIA';
        SET @surnames = 'PAPPAS,KARAS,DIMITRIOU,GEORGIOU,VASILIOU,PETRIDIS,IOANNIDIS';
        SET @random_name = SUBSTRING_INDEX(SUBSTRING_INDEX(@names, ',', 1 + FLOOR(RAND() * (LENGTH(@names) - LENGTH(REPLACE(@names, ',', '')) + 1))), ',', -1);
        SET @random_surname = SUBSTRING_INDEX(SUBSTRING_INDEX(@surnames, ',', 1 + FLOOR(RAND() * (LENGTH(@surnames) - LENGTH(REPLACE(@surnames, ',', '')) + 1))), ',', -1);
        SET driver_name_val = CONCAT(@random_surname, ' ', @random_name);

        -- 2. ΛΟΓΙΚΗ ΓΙΑ SPACE_ID: Επιλέγει ένα τυχαίο ID που υπάρχει στον πίνακα parking_spaces (ΔΙΟΡΘΩΣΗ FOREIGN KEY)
        -- ΣΗΜΑΝΤΙΚΗ ΣΗΜΕΙΩΣΗ: Η RAND() σε ΟUTPUT/LIMIT είναι αργή για 100.000 επαναλήψεις. 
        -- Για δοκιμαστικούς σκοπούς, θα χρησιμοποιήσουμε μια πιο γρήγορη μέθοδο τυχαίας επιλογής
        -- εφόσον ο πίνακας parking_spaces έχει συνεχόμενα IDs (1, 2, 3, ... Max_ID)
        
        -- Αρχικά, βρίσκουμε το μέγιστο space_id (εκτελείται μία φορά, εκτός βρόχου)
        -- Επειδή αυτό δεν είναι εφικτό μέσα σε ένα απλό script, επιστρέφουμε στην ασφαλή μέθοδο
        -- απλοποιώντας την επιλογή:
        
        -- Εάν ο πίνακας parking_spaces είναι μικρός, η RAND() είναι OK.
        SELECT space_id INTO space_id_val
        FROM parking_spaces
        ORDER BY RAND()
        LIMIT 1;
        
        -- 3. Τυχαίο Πακέτο & Υπηρεσίες
        SET service_plan_val = IF(RAND() < 0.5, '12hr', '24hr');
        SET has_shower_val = IF(RAND() < 0.4, FLOOR(1 + (RAND() * 3)), 0); 
        SET has_wash_val = IF(RAND() < 0.1, 1, 0); 

        -- 4. Τυχαίες Ώρες Εισόδου & Εξόδου (Όλες στο παρελθόν)
        SET entry_time_val = DATE_ADD(start_date, INTERVAL FLOOR(RAND() * 365 * 24 * 60) MINUTE);
        -- Διάρκεια διαμονής από 6 έως 72 ώρες
        SET exit_time_val = DATE_ADD(entry_time_val, INTERVAL FLOOR(6 + (RAND() * 72)) HOUR); 
        
        -- Εξασφάλιση ότι η έξοδος είναι στο παρελθόν (ώστε να είναι πληρωμένη)
        WHILE exit_time_val > NOW() DO
            SET entry_time_val = DATE_ADD(start_date, INTERVAL FLOOR(RAND() * 365 * 24 * 60) MINUTE);
            SET exit_time_val = DATE_ADD(entry_time_val, INTERVAL FLOOR(6 + (RAND() * 72)) HOUR);
        END WHILE;

        -- 5. Υπολογισμός Κόστους
        SET @parking_base = IF(service_plan_val = '12hr', rate_12hr_park, rate_24hr_park);
        
        SET @shower_cost_val = has_shower_val * rate_shower;
        SET @wash_cost_val = has_wash_val * rate_wash;
        SET @overnight_cost_val = 0.00; -- Σταθερά 0.00 (χωρίς δωμάτια)
        
        SET @services_cost_val = @shower_cost_val + @wash_cost_val;
        
        -- Το συνολικό κόστος είναι η βάση + οι υπηρεσίες
        SET @total_cost_val = @parking_base + @services_cost_val;
        

        -- 6. Εισαγωγή Δεδομένων
        INSERT INTO `truck_entries` 
        (`license_plate`, `driver_name`, `space_id`, `entry_time`, `exit_time`, 
         `service_plan`, `has_shower`, `has_wash`, `has_wash2`, `stay_overnight_days`, 
         `hourly_surcharge_hours`, `parking_cost`, `services_cost`, `total_cost`, `is_paid`, 
         `room_id`, `shower_cost`, `wash_cost`, `overnight_cost`) 
        VALUES (
            @license_plate_val, driver_name_val, space_id_val, entry_time_val, exit_time_val, 
            service_plan_val, has_shower_val, has_wash_val, 0, stay_overnight_days_val, 
            0, @parking_base, @services_cost_val, @total_cost_val, is_paid_val, 
            room_id_val, @shower_cost_val, @wash_cost_val, @overnight_cost_val
        );

        SET i = i + 1;
    END WHILE;
END
NONE
Με τους επιλεγμένους: Με τους επιλεγμένους:
Λειτουργίες αποτελεσμάτων ερωτήματος Αντιγραφή στο πρόχειρο Αντιγραφή στο πρόχειρο Εξαγωγή Εξαγωγή Εμφάνιση διαγράμματος Εμφάνιση διαγράμματος Δημιουργία προβολής Δημιουργία προβολής
Αποθήκευση αυτού του ερωτήματος SQL Αποθήκευση αυτού του ερωτήματος SQL