簡體   English   中英

sqlite3 C ++中的主鍵錯誤

[英]Primary Key error in sqlite3 c++

我的代碼在編譯和執行時顯示如下:

  1. 成功打開數據庫
  2. SQL錯誤:“;”附近:語法錯誤
  #include <iostream>
  #include <fstream>
  #include <string>
  #include <vector>
  #include <stdlib.h>
  #include <cstring>
  #include <sstream>
  #include <sqlite3.h>
  #include <stdio.h>

using namespace std;

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
 int i;
 for(i=0; i<argc; i++){
  printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}

static void createTrackTable(){
 sqlite3 *db;
 char *zErrMsg = 0;
 int  rc;
 char *sql;

 rc = sqlite3_open("idk.db", &db);
 if( rc ){
  fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
  exit(0);
}else{
  fprintf(stdout, "Opened database successfully\n");
}

sql = "CREATE TABLE TRACK (" \
  "CD_ID INTEGER NOT NULL," \
  "TRACK_ID INTEGER NOT NULL," \
  "TITLE VARCHAR(70) NOT NULL," \
  "PRIMARY KEY(CD_ID, TRACK_ID);";

  rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
  if( rc != SQLITE_OK ){
   fprintf(stderr, "SQL error: %s\n", zErrMsg);
   sqlite3_free(zErrMsg);
 }else{
  fprintf(stdout, "Track table created successfully\n");
}
sqlite3_close(db);
}

int main(){
  createTrackTable();

  return 0;

}

我相信當我聲明PRIMARY KEY(CD_ID,TRACK_ID)時發生錯誤

請任何幫助將不勝感激。 謝謝!

缺少查詢中的最后一個)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM