Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2011 09:10:25

zloymih
От:
Зарегистрирован: 2011-03-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 Python3 Внешние ключи

1. Как узнать версию sqlite, идущую с Python.
2. Есть ли возможность, включить из Python поддержку внешних ключей в sqlite3. Как написано тут: http://www.sqlite.org/foreignkeys.html#fk_enable

Вообщем скачал последнюю sqlite.dll.

 
conn = sqlite3.connect(database, detect_types=sqlite3.PARSE_DECLTYPES)
c = conn.cursor()

c.execute('PRAGMA foreign_keys;')
for row in c:
print(row[0])

c.execute('PRAGMA foreign_keys = ON;')
conn.commit()

c.execute('PRAGMA foreign_keys;')
for row in c:
print(row[0])

c.execute('delete from table1')
conn.commit()

conn.close()
В результате получил сообщение
sqlite3.IntegrityError: foreign key constraint failed
Есть какие-нибудь подводные камни?



Отредактировано (Март 25, 2011 10:31:59)

Офлайн

#2 Март 25, 2011 10:09:29

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

sqlite3 Python3 Внешние ключи

А что вы делаете? Какие таблицы? В какой момент возникает ошибка?



Офлайн

#3 Март 25, 2011 10:31:46

zloymih
От:
Зарегистрирован: 2011-03-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite3 Python3 Внешние ключи

Извиняюсь, эту ошибку я специально вызвал. Я просто хотел показать, что внешние ключи у меня заработали. Но я опасаюсь багов после замены библиотеки.

CREATE TABLE table1 ("id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , col1 TEXT );
CREATE TABLE table2 ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , FK_test INTEGER REFERENCES table1(id), col2 TEXT );



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version