2011-09-30 5 views

答えて

3

あなたは "配列を変更" を使用してPostgreSQLでは、直接それを行うことができます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

テーブルを切り捨てる場合は、最後にRESTART IDENTITY句を使用できます。

例:

TRUNCATE TABLE foo RESTART IDENTITY;

TRUNCATE DOCUMENTATION

+0

URL短縮語は使用しないでください。これにより、あなたはリンク先の人々を見ることができなくなります。 Jeffはリンクを編集しました。 [トピックの詳細はこちら](http://meta.stackexchange.com/questions/99136/let-me-flag-that-for-you-url-shortener-cleanup/108295)を参照してください。 –

+0

ありがとうございました私は短縮リンクがノーであることを認識していませんでした。今私は教育を受けています。 – Ketema

7

あなたは次のようにそれを行うことができます:

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

+0

コンソールでは?上記のコマンドを実行する必要がありますか? – gates

+0

はい。それはレールコンソールになければなりません。 – Rubyrider

+1

ruby​​riderありがとう、 – gates

1

また、Railsの中のActiveRecordを使用することができます。

あなたは簡単に以下のコマンドを実行して、レールのコンソールから行うことができます:あなたは、テーブルからすべてのデータを削除すると、コードの下にしようとし、その後も同様にIDをリセットしたい場合は

Table_name.reset_primary_key 
+0

これは私にとってはうまくいかないようですhttps://pastebin.com/raw/vVTA4Uxa – barlop

1

を。

のActiveRecord :: Base.connection.execute

( "TRUNCATE TABLEは RESTARTのIDENTITYをyour_table_name")しかし、一部の関係は、テーブルと存在であり、あなたがテーブルからすべてのデータを削除するだけでなく、場合関連するテーブルのデータは、次にコードを試してください。

のActiveRecord :: Base.connection.execute補正が必要であれば提案してください

おかげで、 ( "TRUNCATE TABLEは RESTART IDENTITY CASCADEをyour_table_name")。

関連する問題