您的位置:首页 > 数据库

sysbench0.5下面测试postgresql9.4遇到的问题

2015-08-26 22:37 375 查看
实验环境:sysbench 0.5     postgresql 9.4 

今天在测试pg,一直出现一个错误,如下:

ALERT: failed to execute PgSQL query: `INSERT INTO sbtest1 (id, k, c, pad) VALUES (0, 5030, '81282571936-84531830426-41085662298-47928456275-46464339136-26826186841-16594168712-81456389105-00666969794-07160071049', '94213152283-28969561545-68552868757-24104245213-42569280254')`:

ALERT: error: ERROR:  duplicate key value violates unique constraint "sbtest1_pkey"

DETAIL:  Key (id)=(0) already exists.

一直觉得这种开源代码拿着直接用就好,从来没想过里面会有问题。这一次也算是长姿势了。

首先我执行的是:./sysbench --db-driver=pgsql --oltp-auto-inc=on --num-threads=10 --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=postgres --pgsql-password= --pgsql-db=postgres --max-request=0 --max-time=20  --test=tests/db/insert.lua
prepare

       这里不会报错, 然后当我再执行:./sysbench --db-driver=pgsql --oltp-auto-inc=on --num-threads=10 --pgsql-host=127.0.0.1 --pgsql-port=5432 --pgsql-user=postgres --pgsql-password= --pgsql-db=postgres --max-request=0 --max-time=20 --test=tests/db/insert.lua run

  这个地方开始就会报上面那条错误。

错误的原因很简单,就是插入的时候尽管我们选了--oltp-auto-inc=on,让它自增,但是它并没有自增,而是从0开始增加,但是创建表的时候设置的id属性是serial,就不允许有重复。

我的方法是修改insert.lua字段,不插入id 这个字段。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: