Форум сайта python.su
имею бд sqlite3, использую штатный модуль sqlite3/python2.7
1. Столкнулся с проблемой - не работает каскадность. Оказывается, что
SQLite foreign keys are disabled for compatibility purposes. You need to enable them manually right after each connection to the database.
con.execute("PRAGMA foreign_keys = ON")
CREATE TRIGGER [ListUsers_insert] INSTEAD OF INSERT ON ListUsers BEGIN -- valid: INSERT (name), INSERT (name, pid, total) -- Field checks SELECT RAISE(ABORT, 'OID can not be set') WHERE NOT new.OID IS NULL;
>>> s._conn.execute('INSERT INTO ListUsers (name,pid,total) VALUES (?,?,?)', ('YYY',510,10)) Traceback (most recent call last): File "<stdin>", line 1, in <module> sqlite3.IntegrityError: OID can not be set
Отредактировано beelze (Май 9, 2012 23:59:47)
Офлайн
beelzeСэкономило?
Подход мне совершенно непонятный. Порожден, видимо, привычкой к спешке. Как я уже не раз объяснил, именно скулайт в данном случае - то, что нужно. И средство его администрирования тоже должно быть выбрано правильно, а не быстро. Это сэкономит в будущем и время и нервы.
Офлайн
FishHook, что, был кирпичик все же был и оставил след в определенном месте? А теперь будьте любезны объяснить, каким образом это относится к заданному мною вопросу - надо полагать, как раз-таки ответом Вы не владеете? Ну и под конец - скулайт под Win мне собсна без необходимости (хотя и любопытно, что это за дела такие), времени на решение проблемы с каскадностью было потрачено ну минут 5 от силы, но мне и их жалко, поэтому, разумеется, хотелось бы увидеть инфу о неожиданностях в одном месте и в удобном виде.
Офлайн
[quote=beelze] Сразу захотелось узнать, что еще подобного «припасено» - может быть где-то это описано? [/quote] Насчет отсутствия регистронезависимого поиска в локалях отличных от C в курсе?
Отредактировано PooH (Май 10, 2012 13:15:48)
Офлайн
Для разных ОС в sqlite есть свои отдельные реализации интерфейса.
Поэтому различия в поведении могут быть.
Офлайн
PooH, вопросы, относящиеся к локалям - платформо- и прочеезависимы по определению, так что неожиданностями их я бы не назвал. Под «сюрпризами» я понимаю внезапные обнаружения неканонического поведения - таких, как SQLite foreign keys are disabled или Null в PRIMARY KEY. Я уже начинаю подумывать, что и процедуры в скулайте есть, только не включены
Поэтому различия в поведении могут быть.\
однако чрезвычайно фундаментальное различие…
Офлайн