Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    [mysql - stored procedure] Copiare indici e chiavi

    Ciao ragazzi,
    tempo fa ho eseguito una stored procedure, fatta da nicolas, che mi faceva una copia di certe tabelle. A distanza di tempo ho scoperto che chiavi primarie e indici non sono stati copiati


    mi servirebbe quindi una cosa del genere

    date le tabelle A e B

    i campi

    campo1
    campo2

    uguali per entrambi

    se campo 1 è primaria e autoincrement in A allora deve esserlo anche in B
    se campo 2 è indice in A lo deve essere anche in B

    si può fare?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Modifica la porzione della sp da

    codice:
    create table b select * from a
    a

    codice:
    create table b like a;
    insert into b select * from a;

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    un attimino le tabelle esistono già e sono già piene di dati

    altre soluzioni?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da ciro78
    un attimino le tabelle esistono già e sono già piene di dati

    altre soluzioni?
    continua a non essermi chiaro perchè vuoi complicarti la vita, piuttosto che usare SED ad esempio.

    In ogni caso, così a occhio, ti serve una stored che faccia prima una DESCRIBE e che eventualmente lanci una ALTER TABLE

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    cos'è sed?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da ciro78
    cos'è sed?
    un programma di alterazione delle stringhe, tipo awk, l'ideale per batchettoni dumpa-modifica-altera

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ma non devo modificare stringhe ma un db sql
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da ciro78
    ma non devo modificare stringhe ma un db sql
    certo che devi modificare stringhe, il db sql lo alteri proprio con comandi tipo
    ALTER TABLE.
    In pratica crei il comando SQL "giusto" per fare quello che vuoi mettendo insieme "pezzi" di struttura (mysqldump -d) del db originale.

    Io almeno faccio così, ma son più pratico di script e comandi che di SP

  9. #9
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Originariamente inviato da nicola75ss
    Modifica la porzione della sp da

    codice:
    create table b select * from a
    a

    codice:
    create table b like a;
    insert into b select * from a;
    proprio non vuole andare. ho scritto così

    set @qry = concat("create table db",str3,"_",str2," like prefix_",str2,"; insert into db",str3,"_",str2," select * from ", str);

    senza aggiungere l'insert funziona perfettamente
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sono due query distinte. Prima esegui la create e poi la insert tramite prepared statement.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.