Пытаюсь создать таблицу в PostgreSQL и одно из полей сделать PK.
Пробую так:
bRetVal = oQuery.exec(QString("CREATE TABLE tab (ID BIGSERIAL, "
":Pict_ID_1_1, :Pict_ID_1_2, :Pict_ID_1_3, "
"PRIMARY KEY (ID));"));
//bRetVal == true
bRetVal = oQuery.prepare(QString("INSERT INTO tab VALUES("
":Pict_ID_1_1, :Pict_ID_1_2, :Pict_ID_1_3, "
");"));
//bRetVal == true
//Потом
oQuery.bindValue(":Pict_ID_1_1", 1);
oQuery.bindValue(":Pict_ID_2_1", 2);
oQuery.bindValue(":Pict_ID_3_1", 3);
bRetVal =oQuery.exec();
//bRetVal == false
Пробовал через sequence:
bRetVal = oQuery.exec(QString("CREATE SEQUENCE tab_sq START WITH 1"));
//bRetVal == true
bRetVal = oQuery.exec(QString("CREATE TABLE BananasGoBahamas (ID DEFAULT NOT NULL nextval('tab_sq') PRIMARY KEY, "
"Pict_ID_1_1 INTEGER, Pict_ID_1_2 INTEGER, Pict_ID_1_3 INTEGER);"));
//bRetVal == true
bRetVal = oQuery.prepare(QString("INSERT INTO tab VALUES(:ID, "
":Pict_ID_1_1, :Pict_ID_1_2, :Pict_ID_1_3, "
");"));
//bRetVal == true
//Потом
oQuery.bindValue(":ID", "tab_sq.nextval");
oQuery.bindValue(":Pict_ID_1_1", 1);
oQuery.bindValue(":Pict_ID_2_1", 2);
oQuery.bindValue(":Pict_ID_3_1", 3);
bRetVal =oQuery.exec();
//bRetVal == false
Как я понял, в постгрессе нету AUTOINCREMENT... Вобщем, никак не работает... (( Кто-нибудь знает в чем может быть проблема?
Спасибо)