Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [SQL] Riazzerare id serial

    Ciao! conoscete il modo (se esiste) di far ripartire da zero l'id che ho costruito come serial? Perchè anche cancellando tutti i dati dalla tabella, l'id comunque riparte dall'ultimo id insertito...Ora vorrei far ripartire da zero il database, sporcato dalle mille prove, ma non saprei come fare in postgres, ma se avete soluzione in mysql cerco di adattarle

    spero mi possiate aiutare! grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    truncate nome_tabella

    cancella tutto il contenuto della tabella e resetta il contatore.

  3. #3
    Originariamente inviato da nicola75ss
    truncate nome_tabella

    cancella tutto il contenuto della tabella e resetta il contatore.
    Sai ho provato e ha cancellato i dati in tabella ma non ha resettato il contenuto dell'd autoincrementale, è ripartita da dove l'avevo lasciato

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    in mysql resetta anche il contatore. in postgres non saprei.

  5. #5
    Originariamente inviato da nicola75ss
    in mysql resetta anche il contatore. in postgres non saprei.
    Ok, grazie comunque per l'interessamento Spero che qualcuno che usa postgres legga il thread..
    ah,anche se OT.. Forza Torres!

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    [OT]
    Butta male per la Torres.
    Forza Dinamo.
    [/OT]

  7. #7

    Re: [SQL] Riazzerare id serial

    Originariamente inviato da Simone86
    Ciao! conoscete il modo (se esiste) di far ripartire da zero l'id che ho costruito come serial? Perchè anche cancellando tutti i dati dalla tabella, l'id comunque riparte dall'ultimo id insertito...Ora vorrei far ripartire da zero il database, sporcato dalle mille prove, ma non saprei come fare in postgres, ma se avete soluzione in mysql cerco di adattarle

    spero mi possiate aiutare! grazie in anticipo
    la soluzione in mysql è, tramite l'alter table, resettare l'auto increment (il truncate della tabella è un attimino estremista) però in postgresql non si può fare

    dai un occhio qua
    http://www.postgresql.org/docs/7.4/i...rsequence.html

    e
    http://archives.postgresql.org/pgsql...2/msg00336.php

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    Re: Re: [SQL] Riazzerare id serial

    Originariamente inviato da daniele_dll
    la soluzione in mysql è, tramite l'alter table, resettare l'auto increment (il truncate della tabella è un attimino estremista) però in postgresql non si può fare

    dai un occhio qua
    http://www.postgresql.org/docs/7.4/i...rsequence.html

    e
    http://archives.postgresql.org/pgsql...2/msg00336.php
    Interessante! Grazie Daniele.

  9. #9

    Re: Re: [SQL] Riazzerare id serial

    Originariamente inviato da daniele_dll
    la soluzione in mysql è, tramite l'alter table, resettare l'auto increment (il truncate della tabella è un attimino estremista) però in postgresql non si può fare

    dai un occhio qua
    http://www.postgresql.org/docs/7.4/i...rsequence.html

    e
    http://archives.postgresql.org/pgsql...2/msg00336.php
    Grazie per l'indicazione! ora ci do un'occhiata, se risolvo lo scrivo qui nel caso servisse a qualcun'altro

  10. #10
    Sono riucito a risolvere così:
    Ho settato il tipo di dato dell'id a bigint (anzichè bigserial) e posto ad 1 il suo valore di default, eliminando quindi la proprietà di autoincrement, con:

    ALTER TABLE mia_tabella ALTER COLUMN id SET DEFAULT 1;

    Purtroppo il comandi sql presenti nella guida di postgres non funzionano (almeno da me..) tipo:
    alter table mia_tabella alter sequence serial restart with 1; dovrebbe risettare ad 1 la sequenza ma non fà..boh

    Dunque non potendo risolvere così, sono passato alla soluzione "tragica" del
    TRUNCADE mio_progetto

    A questo punto ho risettato l'id a serial (l'autoincrement del mysql) sostituendo la stringa nextval('miatabella_id_seq'::regclass) al valore predefinito.

    ALTER TABLE miatabella ALTER COLUMN id SET DEFAULT nextval('miatabella_id_seq'::regclass);

    ed ora si può ripartire!

    Grazie per il vostro contributo!!!

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.