如何设置数据库中整数的起始编号

时间:2017-09-13 06:59:37

标签: ruby-on-rails ruby postgresql

我正在尝试提交付款费用。我制作了我的桌子,并从{1}}开始订单。这是我的架构:

order_id

付款提供商在 create_table "payments", force: :cascade do |t| t.string "payment_id" t.integer "order_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "payment_type" t.index ["order_id"], name: "index_payments_on_order_id", using: :btree end 中至少需要10位数字。我如何迁移它以使我的数据从1000000 order_id开始?有没有办法改变数据增量的位置?

1 个答案:

答案 0 :(得分:1)

抱歉,我不知道如何将以下内容转为ruby迁移,我只是将其作为SQL命令保留,以实现帖子中的目标:

假设您现有的最高order_id为890,然后设置其序列的最后一个值,以便下一个默认值为1000000891,您必须:

ALTER SEQUENCE order_id_seq RESTART WITH 1000000890;

要处理现有值,您需要更新它们:

UPDATE payments set order_id = order_id + 1000000000;

当然,如果你自己没有达到1000000就应该有效(这反映在“让我们说你现有的最高order_id是890”)