2011-09-30 13 views

risposta

3

Partenza setval

SELECT setval('foo', 42);   Next nextval will return 43 
SELECT setval('foo', 42, true);  Same as above 
SELECT setval('foo', 42, false); Next nextval will return 42 
12

Se si tronca la tabella, è possibile utilizzare la clausola RESTART IDENTITY alla fine.

Esempio:

TRUNCATE TABLE foo RESTART IDENTITY;

TRUNCATE DOCUMENTATION

+0

Si prega di non utilizzare gli abbreviazioni URL. Ciò impedisce alle persone di vedere dove ti colleghi. Jeff ha curato il link. [Vedi qui per ulteriori informazioni sull'argomento] (http://meta.stackexchange.com/questions/99136/let-me-flag-that-for-you-url-shortener-cleanup/108295). –

+0

Grazie non sapevo che i collegamenti abbreviati erano un nono. Ora sono educato. – Ketema

7

Si potrebbe farlo nel modo seguente:

ActiveRecord::Base.connection.execute("TRUNCATE TABLE your_table_name RESTART IDENTITY")

+0

Nella console? Il comando sopra deve essere eseguito? – gates

+0

sì. dovrebbe essere nella console di rails. – Rubyrider

+1

Grazie rubyrider, funziona – gates

1

È possibile anche usare ActiveRecord in Rails.

Si può facilmente farlo dalla console rotaie eseguendo il comando seguente:

Table_name.reset_primary_key 
+0

questo non sembra funzionare per me https://pastebin.com/raw/vVTA4Uxa – barlop

1

Se si desidera cancellare tutti i dati da tavolo e vuole ripristinare id e quindi provare al di sotto del codice.

ActiveRecord :: Base.connection.execute ("TRUNCATE TABLE your_table_name RESTART identità")

Ma se qualche relazione è presente con tavolo e si desidera eliminare tutti i dati dalla tabella così come i dati delle tabelle correlate provano quindi sotto il codice.

ActiveRecord :: Base.connection.execute ("TRUNCATE TABLE your_table_name RESTART IDENTITÀ CASCADE")

Grazie e si prega di suggerire se la correzione necessaria.

Problemi correlati