Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Mister
    Registrato dal
    Jan 2001
    Messaggi
    251

    Assegnare una key ad un campo

    Sto provando ad assegnare ad una campo una primary key ma con scarsi risultati.

    In phpmyadmin selezionando il campo e provando ad assegnare la key mi da il seguente errore:

    #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

    Ho letto che ci sono problemi con InnoDB ma non saprei come risolverli.

    Grazie per l'aiuto

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Mister
    Registrato dal
    Jan 2001
    Messaggi
    251
    Ti ringrazio...

    scusa ma essendo all'inizio faccio ancora fatica con la sintassi.

    Avendo già creato sia tabella che campo e volendo assegnare una chiave al campo

    alter table 'nome_tabella' alter column 'nome_campo' id bigint not null auto_increment first, add primary key (id)

    ALTER TABLE 'nome_tabella' CHANGE `nome_campo` id BIGINT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT

    sto provando di tutto ma con scarsi risultati

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Cancella il campo id che volevi rendere chiave primaria e poi esegui la query indicata nel link precedente per aggiungere il campo.

    codice:
    alter table tab1 add column id bigint not null auto_increment first, add primary key (id)
    ovviamente al posto di tab1 metti il nome della tua tabella e nel caso non ti serva un campo di tipo bigint metti int. Vedi un pò tu.

  5. #5
    Utente di HTML.it L'avatar di Mister
    Registrato dal
    Jan 2001
    Messaggi
    251
    Ti ringazio ma abuso ancora della tua pazienza...

    La tab1 sarà la mia tabella, ma dove indico che voglio assegnare la key ad una colonna precisa già esistente?
    Grazie

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Scusa, ma la tabella contiene già dei record o è ancora vuota?

  7. #7
    Utente di HTML.it L'avatar di Mister
    Registrato dal
    Jan 2001
    Messaggi
    251
    La tabella ha 0 record ma contiene diversi campi ed ad un preciso campo xyz vorrei assegnare una key.

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    alter table tua_tabella change xyz xyz int(11) not null auto_increment, add primary key (xyz)

  9. #9
    Utente di HTML.it L'avatar di Mister
    Registrato dal
    Jan 2001
    Messaggi
    251
    Quanto meno adesso nno ho più un problema di sintassi, ma sono tornato al problema principale

    #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

    Mi sembra che la query sia corretta ora:

    ALTER TABLE `nome_tabella` CHANGE `nome_campo` `nome_campo` INT(11) not null auto_increment first, add primary key (nome_campo)

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Esegui questa query

    show create table nome_tua_tabella

    e incolla qui il risultato affinchè la si possa testare.

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.