Hirdetés

Hirdetés

!!! SZERVERLEÁLLÁS, ADATVESZTÉS INFORMÁCIÓK !!!
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!

Új hozzászólás Aktív témák

  • F1DO

    senior tag

    válasz baracsi #2225 üzenetére

    Köszönöm az útbaigazítást, :K ez alapján is:

    Közkinccsé:

    tárolt eljárás, ami meghíváskor a paraméterben átadott névre (név_mentes_évhónap) illetve ugyanazon nevű forrástábla alapján úgy hozza létre az új táblát, hogy ellenőrzi az adandó táblanévvel létezik-e már tábla és ha nem, létrehozáskor megőrzi a forrás tábla beállításait (kulcs oszlop, stb):

    DELIMITER //
    CREATE PROCEDURE tabla_masolas(IN tablanev VARCHAR(255))
    BEGIN
    DECLARE uj_tabla VARCHAR(255);
    SET uj_tabla = CONCAT(tablanev,'_mentes_', DATE_FORMAT(NOW(), '%Y%m%d'));

    IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = uj_tabla) THEN
    -- Létrehozzuk az új táblát az eredeti tábla szerkezetével
    SET @sql_code = CONCAT('CREATE TABLE ', uj_tabla, ' LIKE ', tablanev);

    PREPARE stmt FROM @sql_code;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    -- Másoljuk át az adatokat az eredeti táblából az új táblába
    SET @sql_code = CONCAT('INSERT INTO ', uj_tabla, ' SELECT * FROM ', tablanev);

    PREPARE stmt FROM @sql_code;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    ELSE
    SELECT 'A képzendő táblanév már létezik.';
    END IF;
    END //
    DELIMITER ;

Új hozzászólás Aktív témák