写在前面
最近实习了,公司产品用的人大金仓,底层数据库是Postgresql。
然后最近在建表,习惯了navicate,用这个一脸懵逼。
而且因为需要设置主键自增,在可视化操作那里无法单独添加,很奇怪,会疯狂报错。
我观察了其他大佬建的表,都是有一个nextval…啥的,谷歌了一波之后发现这是Postgresql的东西。
所以得手动写sql,别人推荐的是加一个关键字就可以了,但是我的一直不可以,所以这个教程先记录一下手动建立序列的方法。
教程
第一步 创建序列
1 | CREATE SEQUENCE 模式.table_name_id_seq; |
第二步 创建表
1 | CREATE TABLE 模式.sys_oper_sql_log ( |
方式二
可以直接使用serial关键词来设定,默认id类型是integer,需要手动调整为bigint或者其他
1 | CREATE TABLE trs_cloud.lm_book_place ( |
注意
人大金仓不像Navicate一样,可视化插入,会提示报错,
可能原因是他要先select那个nextval,然后可视化插入会提前先自检不能为空
所以用insert into
实测可以用Navicate连接,操作虽然跟Mysql的不同,但是至少比人大金仓好太多,人大总是有奇奇怪怪的bug。