У меня есть таблица и видом на основании таблицы:различного поведения названия столбцов между столом и видом
require 'sequel'
db = Sequel.sqlite
db.create_table(:t1){
String :f1
String :f2
}
db.create_view(:v1, db[:t1].select(:f1))
Если создать набор данных на основе таблицы, имя поля в наборе данных таблица являются то же самое (:f1
):
sel = db[:t1].select(:f1)
p sel.sql #"SELECT `f1` FROM `t1`"
p sel.columns#[:f1]
Но если бы я сделать то же самое с точки зрения, имя столбца изменяется с :f1
на :"'f1'"
(смотрите пример кода для правильного значения, я должен изменить немного для уценки)
sel = db[:v1].select(:f1)
p sel.sql #"SELECT `f1` FROM `v1`"
p sel.columns #[:"`f1`"]
Как я могу избежать такого поведения?
Моя среда:
- Win 7
- Руби 1.9.3
- Sequel камень версия "4.6.0".
- sqlite3-1.3.7-x86-mingw32
Спасибо, вы помогли мне;) Я использовал 'sqlite3-1.3.7-x86-mingw32' и обновлена' sqlite3-1.3.8-x86- mingw32' - Теперь моя проблема исчезла. – knut
рад, что смогу помочь –
Причина, по которой он работает с sqlite3-1.3.8-x86-mingw32, а не предыдущей версией, заключается в том, что они обновили встроенный SQLite с 3.7.13 до 3.7.17 (я думаю). Это была ошибка в более старых версиях SQLite. –