2016-12-04 51 views
0

這是我的代碼插入我的簡單的「系列」表中的幾行記錄插入到表:如何使用續集

db = sequel.postgres(config['dbname'],:user=>config['user'],:password=>config['password'],:host=>config['host'],:port=>config['port'],:max_connections=>10) 
@db.create_table? 'series' do 
     primary_key "series_id" , :autoincrement=>true 
     String "series_name" 
    end 
seriesDS = db['series'] 
seriesDS.insert('series_name' => 'test_value') 

seriesDS.insert我得到一個

Sequel::DatabaseError - PG::SyntaxError: ERREUR: erreur de syntaxe sur ou près de « series » 

我沒無法在STDOUT中獲得完整的SQL查詢以進行分析。這很奇怪,因爲我加了這個:

logger = Logger.new STDOUT 
    logger.level = Logger::DEBUG 
    db.loggers << logger 

它似乎是生成錯誤的SQL,但我不知道錯誤的來源。

我使用:

  • 紅寶石2.2.5
  • 續集4.4.1
  • PostgreSQL的9.6

該程序使用ruby -E utf8啓動。

回答

0

續集使用Ruby符號來表示SQL標識符。至少,您必須使用seriesDS = db[:series]

其他情況下,你想要一個SQL標識符,你應該從使用字符串切換到符號。

+0

自從這個問題我發現更多的紅寶石,我明白符號是一個更好的方式去。但是,如果符號是強制性語法,那麼爲什麼create table工作? – Sid