Mar*_*isP 13 postgresql primary-key auto-increment
有没有办法将现有的主键类型从int更改为serial而不删除表?我已经在表中有很多数据,我不想删除它.
Joa*_*son 45
或多或少地将int转换为串行仅意味着将值序列默认添加到值,以使其成为串行;
选择序列的起始值,大于表中的任何现有值
SELECT MAX(id)+1 FROM mytable
为序列创建一个序列(tablename_columnname_seq是一个好名字)
CREATE SEQUENCE test_id_seq MINVALUE 3(假设你想从3开始)
更改列的默认值以使用序列
ALTER TABLE test ALTER id SET DEFAULT nextval('test_id_seq')
改变表/列所拥有的序列;
ALTER SEQUENCE test_id_seq OWNED BY test.id
和往常一样,养成运行完整备份的习惯,然后再运行互联网上随机人员的SQL查询;-)
| 归档时间: |
|
| 查看次数: |
20553 次 |
| 最近记录: |