Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    MySQL - creare indice tabella con 2 campi (uno auto_increment)

    ciao a tutti, devo creare una tabella cosi composta:

    create table concessionarie
    (
    id_concessionaria SMALLINT unsigned auto_increment,
    nome char(20),
    citta char(20),
    indirizzo char(25),
    CAP char(5),
    telefono1 char(12),
    telefono2 char(12),
    fax char(12)
    );

    devo settare i primi 2 campi (id_concessionaria e nome) come chiave primaria.

    come si fa?
    se nn metto primary key nel primo campo ovviamente ottengo un errore, e poi non posso nè rimuovere la chiave primaria, e quindi nn posso fare alter table per settarla successivamente

  2. #2
    create table concessionarie
    (
    id_concessionaria SMALLINT unsigned auto_increment primary key,
    nome char(20),
    citta char(20),
    indirizzo char(25),
    CAP char(5),
    telefono1 char(12),
    telefono2 char(12),
    fax char(12),
    UNIQUE (`nome`)
    );


    ho risolto cosi e sembra funzionare...è giusto?

  3. #3
    Cosi' non e' la stessa cosa.

    se fai una chiave primaria con due campi di cui uno autoincrement avrai:

    1 alfa
    2 alfa
    1 fiat
    2 fiat
    1 renault
    3 alfa
    2 renault

    Se fai un campo con nome UNIQUE potrai avere solo un campo con lo stesso nome e l'autoincrement che avanza per i fatti suoi.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    appunto, a me serve che la tabella concessionarie non possa avere 2 o più concessionarie con lo stesso nome

    esempio nella mia città ci sono 3 4 sedi di una concessionaria, e tutte hanno lo stesso nome, ma sono sedi diverse, quindi devo per forza impostare nome 1, nome 2, nome 3 ecc ecc
    e per identificare una concessionaria uso id_concessionaria o il nome

    mentre per le macchine logicamente ho fatto:
    create table automobili
    (
    id_auto SMALLINT unsigned auto_increment primary key,
    marca char(20),
    modello char(20),
    cilindrata char(4),
    alimentazione char(10),
    anno char(4),
    id_concessionaria SMALLINT unsigned,
    tipo enum('NUOVO','USATO')
    );

    dove c'è solo il campo id_auto che mi permette di identificare una macchina

  5. #5
    Lo sai tu quello che ti serve.

    ti ho solo evidenziato la differenza tra le due ipotesi dei primi due post come da tua richiesta....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6

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.