Неправильное создание индекса в Firebird

318 просмотра
0
0 Комментариев

Я написал следующую программу

import kinterbasdb
import os
import json,sqlite3,sql
os.remove('D:/ThirdTask/test.fdb')
con=kinterbasdb.create_database("create database 'D:/ThirdTask/test.fdb' user 'sysdba' password 'masterkey'")
conn=kinterbasdb.connect(host='localhost',database='D:/ThirdTask/test.fdb', user='sysdba', password='masterkey')
cur=conn.cursor()
    s="""
create table CLIENTS
(
   ID   INTEGER NOT NULL,
   COMPANY   VARCHAR(50),
   "LAST NAME"   VARCHAR(50),
   "FIRST NAME"   VARCHAR(50),
   "E-MAIL ADDRESS"   VARCHAR(50),
   "JOB TITLE"   VARCHAR(50),
   "BUSINESS PHONE"    VARCHAR(25),
   "HOME PHONE"   VARCHAR(25),
   "MOBILE PHONE"   VARCHAR(25),
   "FAX NUMBER"   VARCHAR(25),
   ADDRESS   BLOB SUB_TYPE 1,
   CITY   VARCHAR(50),
   "STATE/PROVINCE"   VARCHAR(50),
   "ZIP/POSTAL CODE"   VARCHAR(15),
   "COUNTRY/REGION"   VARCHAR(50),
   "WEB-SITE"   VARCHAR(25),
   NOTES   BLOB SUB_TYPE 1,
   INCLUDING   BLOB
);
create ascending index IDX_CLIENTS_CITY on CLIENTS (CITY);
"""
print s
cur.execute(s)
conn.commit()
#cur=con.cursor()
con.close()
conn.close()
print "Connect succesfully"

В результате получаю ошибку

create table CLIENTS
(
   ID   INTEGER NOT NULL,
   COMPANY   VARCHAR(50),
   "LAST NAME"   VARCHAR(50),
   "FIRST NAME"   VARCHAR(50),
   "E-MAIL ADDRESS"   VARCHAR(50),
   "JOB TITLE"   VARCHAR(50),
   "BUSINESS PHONE"    VARCHAR(25),
   "HOME PHONE"   VARCHAR(25),
   "MOBILE PHONE"   VARCHAR(25),
   "FAX NUMBER"   VARCHAR(25),
   ADDRESS   BLOB SUB_TYPE 1,
   CITY   VARCHAR(50),
   "STATE/PROVINCE"   VARCHAR(50),
   "ZIP/POSTAL CODE"   VARCHAR(15),
   "COUNTRY/REGION"   VARCHAR(50),
   "WEB-SITE"   VARCHAR(25),
   NOTES   BLOB SUB_TYPE 1,
   INCLUDING   BLOB
);
create ascending index IDX_CLIENTS_CITY on CLIENTS (CITY);
 
Traceback (most recent call last):
  File "D:\ThirdTask\<a href="http://connect.py">connect.py</a>", line 162, in <module>
    cur.execute(s)
ProgrammingError: (-104, 'isc_dsql_prepare: \n  Dynamic SQL Error\n  SQL error code = -104\n  Token unknown - line 23, column 1\n  create')


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

Необходимо было каждый sql запрос оформлять в одну строку и передавать команде cur.execute(s)- в таком случае работает.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up