Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema Sql

  1. #1

    Problema Sql

    Ho una tabella che contiene al solito nome cognome matricola. In tale tabella ho inserito una colonna che contiene il numero di ogni riga, un numero che mi serve per identificare in modo univoco (chiave primaria) ogni record.
    E' possibile fare in modo che il numero venga incrementato dal motore di database?
    Fin'ora ogni volta che volevo inserire un record leggevo l'intero database in cerca del primo id libero.

    Denis.

  2. #2
    Devi dire al campo del database che è un Contatore;
    se usi SQLServer devi anche specificare l'incremento automatico.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Uso PostgreSQL. Come faccio in linguaggio sql a fare cio?
    create table tabella ...


    Grazie.

  4. #4
    provato con
    codice:
    insert into Tabella (codice)
                 values (select max(codice)+1
                           from Tabella)
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    Non riesco sai.

    Potresti scrivermi i comandi sql per creare una tabella

    tabella-> id, studente

    Grazie.

  6. #6
    Ok ok, ho capito!

    Come si fa a riutilizzare un eventuale id reso libero? In questo modo non mi pare sia possibile.

  7. #7
    Originariamente inviato da denis76
    Uso PostgreSQL. Come faccio in linguaggio sql a fare cio?
    create table tabella ...]
    In PostgreSQL puoi usare il tipo SERIAL

    codice:
    CREATE TABLE studenti
    (
      id          SERIAL PRIMARY KEY,
      cognome     VARCHAR(30),
      nome        VARCHAR(30),
      matricola   NUMERIC(10)
    );
    SERIAL è come una macro verrà prima creata una sequenza

    CREATE SEQUENCE studenti_id_seq;

    e poi la parola chiave SERIAL verrà sostituita con

    integer DEFAULT nextval('studenti_id_seq') NOT NULL

    Per inserire uno studente farai qualcosa tipo
    codice:
    INSERT INTO studenti (cognome, nome, matricola)
    VALUES ('Rossi','Mario',1121211);
    un tutorial in flash sulle sequenze
    http://techdocs.postgresql.org/college/001_sequences/

    un tutorial in flash sull'integrità referenziale
    http://techdocs.postgresql.org/redir...rity/index.php

    il tipo serial
    http://www.postgresql.org/docs/curre...ATATYPE-SERIAL

    le sequenze
    http://www.postgresql.org/docs/curre...esequence.html

    Domanda:
    Matricola è già chiave primaria della relazione Studenti, è stata creata proprio per questo scopo, perchè creare un'altra chiave fittizia?

  8. #8

    Sequence in Oracle 8.1.6

    Ciao,
    anche io ho un problema con un contatore ma in oracle.
    Ho creato una tabella, con il campo ID di tipo number.
    Sul campo ID ho creato una sequence.
    Fino a qui tutto ok.

    Poi ho creato una funzione che esegue insert sulla suddetta tabella, e per il cmapo ID uso il comando ID.NextVal.
    Quando compilo sql navigator mi da errore su ID.NextVal (NextVal non è blu come dovrebbe).
    Qualcuno saprebbe dirmi dove sbaglio?
    Grazie,
    Luca
    :mavieni: Luca
    http://digilander.libero.it/lpelo
    http://www.myspace.com/redpile

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 © 2024 vBulletin Solutions, Inc. All rights reserved.